<div dir="ltr">I agree that having a random integer function would be more suitable. <div>Picking a random element from an array is a fairly uncommon thing but <br>generating a random integer in a given range is something much more desirable.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-06-20 11:33 GMT+02:00 Isiah Meadows <span dir="ltr"><<a href="mailto:isiahmeadows@gmail.com" target="_blank">isiahmeadows@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Better idea: let's introduce an integer-based `Math.random` equivalent<br>
that can be optionally constrained to a specific range.<br>
<br>
<br>
```js<br>
// Simple polyfill<br>
Math.randomInt = Math.randomInt || function (start, end) {<br>
    if (arguments.length === 0) {<br>
        start = 0; end = Number.MAX_SAFE_INTEGER<br>
    } else if (arguments.length === 1) {<br>
        end = start; start = 0<br>
    }<br>
    start = Math.max(Math.floor(start), -Number.MAX_SAFE_INTEGER)<br>
    end = Math.min(Math.floor(end), Number.MAX_SAFE_INTEGER)<br>
<br>
    return Math.floor(Math.random() * (end - start)) + start<br>
}<br>
```<br>
<br>
You could then use it like this:<br>
`array[Math.randomInt(array.<wbr>length)]`. I feel in this particular case,<br>
a more general solution is much more useful than just a "pick some<br>
random item in an array". (Number guessing games, anyone?)<br>
-----<br>
<br>
Isiah Meadows<br>
<a href="mailto:me@isiahmeadows.com">me@isiahmeadows.com</a><br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On Thu, Jun 15, 2017 at 6:20 PM, William White <<a href="mailto:w.white9@icloud.com">w.white9@icloud.com</a>> wrote:<br>
> And prng.pick(str), prng.pick(set) etc.?<br>
><br>
> On 15 Jun 2017, at 22:34, Michał Wadas <<a href="mailto:michalwadas@gmail.com">michalwadas@gmail.com</a>> wrote:<br>
><br>
> I believe it's too specialized to be a part of Array interface.<br>
><br>
> Though, I think JS should have better support for randomness, so we could<br>
> do:<br>
><br>
> prng.pick(arr);<br>
> prng.sample(arr, 5);<br>
> prng.sampleWithoutRepetitions(<wbr>arr, 4);<br>
><br>
> On 15 Jun 2017 20:42, "Will White" <<a href="mailto:w.white9@icloud.com">w.white9@icloud.com</a>> wrote:<br>
><br>
> Dear es-discuss,<br>
><br>
> I would like to propose Array.prototype.random, which would return a random<br>
> array element the same way `array[Math.floor(Math.random(<wbr>) * array.length)]`<br>
> does, because every time I want a random array element, I have to remember<br>
> how to do it. Do you think this is a useful addition to the language?<br>
><br>
> Will White<br>
> ______________________________<wbr>_________________<br>
> es-discuss mailing list<br>
> <a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
> <a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/<wbr>listinfo/es-discuss</a><br>
><br>
><br>
><br>
> ______________________________<wbr>_________________<br>
> es-discuss mailing list<br>
> <a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
> <a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/<wbr>listinfo/es-discuss</a><br>
><br>
______________________________<wbr>_________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/<wbr>listinfo/es-discuss</a><br>
</div></div></blockquote></div><br></div>