Если небольшой файлик, то можно так:
use struct;
open ( my $fh, "<FILE_NAME" );
my ($count, @lines);
while (<$fh>) {
$count ++;
push (@lines, $_)
};
print ($lines [int(rand($count))]);
close ($fh);
Если большой, то чтобы файл в память не загружать, можно
use strict;
open ( my $fh, "<FILE_NAME" );
my $count;
while (<$fh>) {
$count ++;
};
my $c=int(rand($count));
seek ($fh, 0 ,0);
for (my $i=0; $i<$c; $i++) {$_=<$fh>};
print;
close ($fh);