How do I generate a secure uniform random number within a range? The range could be between 0 to 100. (The upper bound is not a power of 2).
java.security.SecureRandom
seems to provide the range 0..2^n
.
How do I generate a secure uniform random number within a range? The range could be between 0 to 100. (The upper bound is not a power of 2).
java.security.SecureRandom
seems to provide the range 0..2^n
.
Try below code snap
You can do
or
Note: this is more efficient than say
(int) (rand.nexDouble() * 100)
as nextDouble() needs to create at least 53-bits of randomness whereas nextInt(100) creates less than 7 bits.