在Java中在一定范围内统一生成安全随机数

在Java中在一定范围内统一生成安全随机数,java,security,random,Java,Security,Random,如何在一个范围内生成一个安全一致的随机数?范围可能在0到100之间。(上限不是2的幂) 似乎提供了您可以执行的范围0..2^n Random rand = new SecureRandom() // 0 to 100 inclusive. int number = rand.nextInt(101); 或 注意:这比说(int)(rand.nextDouble()*100)更有效,因为nextDouble()需要创建至少53位的随机性,而nextInt(100)创建的随机性少于7位。请尝试下面

如何在一个范围内生成一个安全一致的随机数?范围可能在0到100之间。(上限不是2的幂)

似乎提供了您可以执行的范围
0..2^n

Random rand = new SecureRandom()
// 0 to 100 inclusive.
int number = rand.nextInt(101);

注意:这比说
(int)(rand.nextDouble()*100)
更有效,因为nextDouble()需要创建至少53位的随机性,而nextInt(100)创建的随机性少于7位。

请尝试下面的代码快照

    SecureRandom random = new SecureRandom();

    int max=50;
    int min =1;

    System.out.println(random.nextInt(max-min+1)+min);

我只是删除了我的评论,因为它是错误的。对不起,伙计们,是的。这是我的错,我真的需要学习更仔细地阅读文档。
    SecureRandom random = new SecureRandom();

    int max=50;
    int min =1;

    System.out.println(random.nextInt(max-min+1)+min);