【发布时间】:2015-01-26 15:44:29
【问题描述】:
我一直在尝试创建一个函数,该函数将通过Window.crypto.getRandomValues() 函数返回一个介于 0(包括)和 1(不包括)之间的随机十进制数。目前,我的代码如下:
var rand = function(){
var ra = window.crypto.getRandomValues(new Uint32Array(1))[0];
function dec(n,m){
return (n>=0&&n<=1)?n:dec(n/m,m);
}
return dec(ra,8);
}
我的问题是这不是均匀分布的;它往往在 0.2 和 0.7 之间,很少低于 0.2 和 0.7 以上。有没有更好的方法来使用.getRandomValues() 方法来获取类似于Math.random() 函数的数字?
我没有使用.random() 方法,因为我希望为我正在尝试执行的操作提供安全号码。
【问题讨论】:
标签: javascript random cryptography