Según la documentación, RAND(n) funciona correctamente solo si n es constante. El efecto de usar un argumento no constante no está definido. A partir de MySQL 5.0.13, no se permiten argumentos no constantes.
Y como dicen, RAND() no pretende ser un generador aleatorio perfecto. Es una forma rápida de generar números aleatorios bajo demanda que es portátil entre plataformas para la misma versión de MySQL.
Comprueba lo que sucederá si usas RAND() sin parámetro.