SmiLe, плохая идея, которая, в большинстве случаев создаёт временную таблицу на диске.
На таблицах с десятками тысяч записей order by rand работает до секунды уже.
join поможет (при условии, что id в таблице - это primary key)
SELECT * FROM ( SELECT round(RAND()*( SELECT MAX(id) FROM `table`)) as `id` FROM (SELECT `id` FROM `table` as `tmp` LIMIT 200) as `tmp` order by rand() ) AS `ids` JOIN `table` ON `table`.`id` = `ids`.`id` LIMIT 1