且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Javascript:使用crypto.getRandomValues在一个范围内生成一个随机数

更新时间:2023-02-10 13:16:26

The easiest way is probably by rejection sampling (see http://en.wikipedia.org/wiki/Rejection_sampling). For example, assuming that max - min is less than 256:

function getRandomInt(min, max) {       
    // Create byte array and fill with 1 random number
    var byteArray = new Uint8Array(1);
    window.crypto.getRandomValues(byteArray);

    var range = max - min + 1;
    var max_range = 256;
    if (byteArray[0] >= Math.floor(max_range / range) * range)
        return getRandomInt(min, max);
    return min + (byteArray[0] % range);
}

相关阅读

技术问答最新文章