アプリケーションでランダムな数字を作って、そのIDのレコードを取得する方法ではなく、
SQLだけでやってみたい
order by RAND() limit 1 これで、できるようです。
order by RAND()は遅くなるので、注意が必要です。
そこで、idでランダムに取得するには、
select id,name from table1 order by RAND() limit 5
ではなく、
select id,name from(select id from table1 order by RAND()) as rndleft outer join table1 on rnd.id = table1.idlimit 5
とする。
先にインデックスのついたidで単純にランダムに並び替え、そこに情報を付加するという考え方だと思います。