Does anyone have an easy solution for pulling a random element from an array, while at the same time making certain this random element isn't a duplicate? If I had a list of 10-15 elements in an array, how could I be sure to not pull a duplicate random element?

I've used this code to grab an index within range,
$array_size = @array; $index = int(rand($array_size));
but what if I want to be sure that I don't get a duplicate index? I could push each "seen" index into another array and then compare the random index to all already seen index values, looping until a fresh index is found. The only problem I see is that it may take several iterations before finding an available index...or what if the random number generator continues to produce "seen" index values?

Does anyone have an efficient method for achieving this? Thanks in advance.

In reply to random index in array - no duplicates by emilford

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.