Puede dar a cada resultado un número aleatorio y ordenar el resultado primero por puntos DESC y luego por el valor aleatorio:
SELECT *, RAND() random FROM users ORDER BY points DESC, random ASC
Probablemente también esté la solución con:
SELECT * FROM users ORDER BY points DESC, RAND()
Pero no estoy seguro de eso.