常用取整数的方法 : Math.floor(Math.random() * (max - min + 1)) + min
一步步来解析:
Math.random()
函数返回一个浮点, 伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。
返回值 :一个浮点型伪随机数字,在0
(包括0)和1
(不包括)之间。
-MDN
1. (max - min + 1)
大数减小数+ 1 得到差值 比如8-4+1 = 5; 也就是在5个数中间取值。
2.Math.random() * (max - min + 1) 返回 0-5之间的值,浮点数。
3. Math.floor(Math.random() * (max - min + 1)) 向下取整 +最小值 得到
但是这个数很假 最大和最小几乎取不到
那么如果要取浮点数呢?
Math.random() * (max - min )+ min;
============================================
如果要取随机值 可以用Crypto.getRandomValues()
用法:
var array = new Uint32Array(10); window.crypto.getRandomValues(array); console.log("Your lucky numbers:"); for (var i = 0; i < array.length; i++) { console.log(array[i]); }
地址:https://developer.mozilla.org/zh-CN/docs/Web/API/RandomSource/getRandomValues