> On Mar 4, 2017, at 3:21 AM, Haravikk via swift-evolution 
> <[email protected]> wrote:
> 
>> 
>> On 4 Mar 2017, at 06:58, Charlie Monroe via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> While I am not against the idea, I believe that this is not as easy as one 
>> would think as everyone has a different understanding of the word "random" 
>> as most of random generators aren't "true" random generators.
>> 
>> I think this would ideally require a new protocol RandomGenerator which 
>> would be passed to the collection to get the random element, i.e. it would 
>> look something like:
>> 
>> arr.randomElement(using: ARC4RandomGenerator())

Agreed. Probably the best random interface would just allow one to fetch one or 
more bytes of ‘randomness’, then apply however best toward making a number

> I suppose the question is whether a default PRNG on numeric types is "good 
> enough", since most developers just need some randomness, it doesn't matter 
> how good it actually is. Anyone with stricter requirements shouldn't be using 
> a black-box, default generator.

In general, I’d recommend against providing a default that we know won’t meet 
everyone’s needs, as randomness can have security properties. There are also 
use cases (like games) where it is important to have multiple identical sources 
of random data.

A Numeric init(using: RandomSource:, range: Range<Self>) or similar may be more 
appropriate, but this might be better served as a future extension to be done 
in conjunction with the server api working group (who I believe are currently 
working on security/cryptography).

-DW 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to