Puoi assegnare a ciascun risultato un numero casuale e ordinare il risultato prima per punti DESC poi per valore casuale:
SELECT *, RAND() random FROM users ORDER BY points DESC, random ASC
Probabilmente c'è anche la soluzione con:
SELECT * FROM users ORDER BY points DESC, RAND()
Ma non sono sicuro di quello.