use strict; use warnings; use List::Util qw(shuffle); sub my_shuffle { my $old_seed = rand(2**32); srand(1); my @shuffled = shuffle(@_); srand($old_seed); return @shuffled; } print my_shuffle(qw(a b c d e f g)), $/; print my_shuffle(qw(a b c d e f g)), $/; print my_shuffle(qw(a b c d e f g)), $/;