http://qs321.pair.com?node_id=695780


in reply to Random Derangement Of An Array

sub fisher_yates_shuffle { my $deck = shift; # $deck is a reference to an array my $i = @$deck; while ($i--) { my $j = int rand ($i+1); @$deck[$i,$j] = @$deck[$j,$i]; } } my @list = (1..5); fisher_yates_shuffle( \@list ); print join ', ',@list;