Хотя ссылка @Sandro объясняет, почему ORDER BY RAND()
плохая, она не дает реальных решений.
Вы должны попробовать прочитать эту статью . А если он слишком «сухой», или вы хотите больше узнать о SQL, то вам следует поискать книгу SQL Antipatters или хотя бы внимательно просмотреть авторов слайды .