如何将Ruby's Array.shuffle
method与安全随机数生成器一起使用?
该方法可以接受随机数生成器作为参数。但是,标准库中的SecureRandom
实际上并不是一个可以简单替换Random
类的随机数生成器。
a = %w(Some data that needs to be randomized)
a.shuffle! # Not securely random
# Is this any good? I arbitrarily choose 2**32. Should it be something else?
a.shuffle!(random: Random.new(SecureRandom.random_number(2**32)))
我确实找到了this example,它只是重新实现了Array#shuffle
方法。但是,我只是将正确的随机数生成器传递给现有(优化)方法,而不是重新实现自己的方法。