use Algorithm::Numerical::Shuffle qw /shuffle/; . . . foreach my $i (1..$cards) { . . . @words = shuffle @words; for my $x (1..4) { for my $y (1..4) { my $word = shift @words; . . .