perlで複数行あるファイルから1行をランダムで抜き出す書き方として、以下のような方法があります。
※http://www.din.or.jp/~ohzaki/perl.htm#File_Random より転載
ファイル全体をメモリに読み込まないので少ないメモリで実行出来る利点があります。

srand;
open(FILE, "< $file");
rand($.) < 1 and $line = $_ while <FILE>;
close(FILE);
print $line;

file()で読み込んでshuffle()すれば一番楽なのは分かってますが、
これをPHPで書いた場合、どのようになるでしょうか?

rand($.) < 1 and $line = $_ while <FILE>;
問題なのは↑の1行だけなのですが、perlの経験がない為悪戦苦闘してます。