my $n = 1000; my $cnt = 10; my @ret; for (my $i = 0; $i < $cnt; $i++) { my $r = int(rand()*$n); my $j = 0; while ($j <= $r) { $r++ if defined $ret[$j]; $j++; } $ret[$r] = 1; $n--; } print "$cnt random indexes:\n"; for (my $i = 0; $i < $n+$cnt; $i++) { print "$i\n" if $ret[$i]; }