Как оптимизировать sql запрос с ORDER BY RANDOM()?
Вопрос "почему медленно работает ORDER BY RAND()" просто канонический на собеседовании джуниора.
Вбейте в гугл, есть множество способов решения, у всех свои плюсы и минусы.
Можно создать memory table из айдишников всех записей, удовлетворяющих условию, и проставить этому списку нумерацию (id(auto_increment), id_from_query) - в итоге берем max(id) из мемори тэйбла, и вызываем пять раз рандом от одного до макс айди. Дальше думаю понятно.