in reply to Re: random number generation.
in thread random number generation.

Thanks guys for your replies. Hi Ikegami, how would your "rerolling duplicates" method work if the l +ist just thrice (not long enough) the total numbers to be drawn. I gu +ess "shuffle" would be a better alternative then? Thanks.

Replies are listed 'Best First'.
Re^3: random number generation.
by ikegami (Patriarch) on Sep 11, 2007 at 18:20 UTC
    The shorter the list, the more rerolls would have to be done. shuffle will work quite well in most settings even with hundreds of items.
      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=(); }
        Method 1 is fine.
        my @array = (1..15); for (1..3) { my @shufflednumbers = (shuffle(@array))[0..4]; print "@shufflednumbers\n"; }