sub fisher_yates_shuffle { my $array = shift; my $i; for ($i = @$array; --$i; ) { my $j = int rand ($i+1); next if $i == $j; @$array[$i,$j] = @$array[$j,$i]; } } #### for (0..($#arr-1)) { $n = int (rand() * ($#arr - $_ + 1)) + $_; $t = $arr[$n]; $arr[$n] = $arr[$_]; $arr[$_] = $t; } #### for (0..($#arr-1)) { $n = int (rand() * ($#arr - $_ + 1)) + $_; #### $t = $arr[$n]; $arr[$n] = $arr[$_]; $arr[$_] = $t; #### } #### for (0..($#arr-1)) { $n = int (rand() * ($#arr - $_ + 1)) + $_; #### @$arr[$_,$n] = @$arr[$n,$_]; #### } #### for (0..($#arr-1)) { $n = int (rand() * ($#arr - $_ + 1)) + $_; #### # next if $_ == $n; #### @$arr[$_,$n] = @$arr[$n,$_]; } #### for (0..($#arr-1)) { # Your Version $n = int (rand() * ($#arr - $_ + 1)) + $_; for ($i = @$array; --$i; ) { # Fisher-Yates my $j = int rand ($i+1); #### for (0..($#arr-1)) { $n = int ( #### rand() * ($#arr - $_ + 1) #### ) + $_; # next if $_ == $n; @$arr[$_,$n] = @$arr[$n,$_]; } #### for (0..($#arr-1)) { $n = int ( #### rand($#arr - $_ + 1) #### ) + $_; # next if $_ == $n; @$arr[$_,$n] = @$arr[$n,$_]; } #### for (0..($#arr-1)) { $n = int (rand($#arr - $_ + 1)) #### + $_ #### ; # next if $_ == $n; @$arr[$_,$n] = @$arr[$n,$_]; }