sub shuffle { my @array = @{shift()}; return unless @array; # Cannot be empty. my $i = @array; while( --$i ) { my $j = int rand($i+1); @array[$i,$j] = @array[$j,$i]; } return @array; }