Pos yang bagus menangani beberapa kasus, dari yang sederhana, hingga celah, hingga yang tidak seragam dengan celah.
http://jan.kneschke.de/projects/mysql/order- by-rand/
Untuk sebagian besar kasus umum, berikut adalah cara melakukannya:
SELECT name
FROM random AS r1 JOIN
(SELECT CEIL(RAND() *
(SELECT MAX(id)
FROM random)) AS id)
AS r2
WHERE r1.id >= r2.id
ORDER BY r1.id ASC
LIMIT 1
Ini mengandaikan bahwa distribusi id sama, dan mungkin ada celah dalam daftar id. Lihat artikel untuk contoh lebih lanjut