my %seen = (); $ARGV[0] ? srand(time) : srandom(time); for (1 .. 10000000) { my $r = $ARGV[0] ? rand() : random(); die "$_" if exists $seen{$r}; $seen{$r} = 1; }