Gvozd,
да я и не спорю про эффективность. Что может быть шустрее, чем выборка двух значений по полю-индексу? (Более того, поколдовал я и так и сяк, и с JOIN и с
"LIMIT {random}, 1", при нескольких тысячах строк результаты ужасают.)
Просто тогда надо быть очень внимательным и держать id в чистоте и порядке.
Да, и багрепорт, видимо, проигнорировали.
// допустим, $kol = 1;
$rnd = rand(1, $kol); // 1, всегда
while( ($rnd2 = rand(1, $kol)) ==$rnd); // бесконечный цикл