Vous pouvez donner à chaque résultat un nombre aléatoire et ordonner le résultat d'abord par points DESC puis par la valeur aléatoire :
SELECT *, RAND() random FROM users ORDER BY points DESC, random ASC
Il y a probablement aussi la solution avec :
SELECT * FROM users ORDER BY points DESC, RAND()
Mais je ne suis pas sûr de celui-là.