my @shuffled = sort {.5## my %r; my @shuffled = sort { ($r{$a}||=rand) <=> ($r{$b}||=rand) } @input; #### my @r = map rand, @input; my @shuffled = @input[sort {$r[$a] <=> $r[$b]} 0..$#input];