my @list = 'a'..'z'; # use your data instead of this my $n = 5; # how many do you need? foreach my $i (0..$n-1) { my $j = rand @list; ($list[$i], $list[$j]) = ($list[$j], $list[$i]); # swap ith and jth elements }; print join(', ', @list[0..$n-1]), "\n";