sub random_pick { my ( $n, $arr ) = @_; my @idx = 0..$#$arr; my $i = 0; while ( $i < $n ) { my $j = $i + rand( @idx - $i ); @idx[ $i, $j ] = @idx[ $j, $i ]; ++$i; } return @{ $arr }[ sort { $a <=> $b } @idx[ 0 .. $n-1 ] ]; }