Thank you very much Ikegami. One last thing, if I want to create 3 sets of 5 integers each from the integer range 1 to 15 then which one is better from randomness angle: 1. I shuffle the previously "shuffled" list in each iteration, or 2. I shuffle the "original" list in each iteration. Here is the code: Method 1: my @array=(1..15); my @shufflednumbers=(); foreach my $i (1..3) { @shufflednumbers = shuffle (@array); print "@shufflednumbers[0..4]"; @shufflednumbers=(); } Method 2: my @array=(1..15); my @temp=@array; my @shufflednumbers=(); foreach my $i (1..3) { @shufflednumbers = shuffle (@temp); print "@shufflednumbers[0..4]"; @temp=@shufflednumbers; @shufflednumbers=(); }