Zgodnie z dokumentacją RAND(n) działa poprawnie tylko wtedy, gdy n jest stałe. Efekt użycia niestałego argumentu jest niezdefiniowany. Od MySQL 5.0.13 niestałe argumenty są niedozwolone.
A jak mówią, RAND() nie ma być idealnym generatorem losowym. Jest to szybki sposób generowania liczb losowych na żądanie, który można przenosić między platformami dla tej samej wersji MySQL.
Sprawdź, co się stanie, jeśli użyjesz RAND() bez parametrów.