use List::Util qw( shuffle ); my @picks = (shuffle 1..15)[0..4]; #### my @picks; my %seen; for (1..5) { # Five numbers my $pick = int(rand(15000)) + 1; # in 1..15000. redo if $seen{$pick}++; push @picks, $pick; }