有没有办法用JavaScript生成指定范围内的随机数?

例如:指定范围从1到6,随机数可以是1、2、3、4、5或6。


当前回答

数学.随机()

返回介于min(包含)和max(包含)之间的整数随机数:

function randomInteger(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

或介于min(包含)和max(不包含)之间的任意随机数:

function randomNumber(min, max) {
  return Math.random() * (max - min) + min;
}

有用的示例(整数):

// 0 -> 10
Math.floor(Math.random() * 11);

// 1 -> 10
Math.floor(Math.random() * 10) + 1;

// 5 -> 20
Math.floor(Math.random() * 16) + 5;

// -10 -> (-2)
Math.floor(Math.random() * 9) - 10;

**总是很高兴被提醒(Mozilla):

Math.random()不提供加密安全的随机数字。不要将它们用于与安全相关的任何事情。使用Web加密API,更准确地说window.crypto.getRandomValues()方法。

其他回答

var x = 6; // can be any number
var rand = Math.floor(Math.random()*x) + 1;

其他解决方案:

(数学随机()*6|0)+1~~(数学随机()*6)+1

联机尝试

尝试使用:

函数随机(最小值,最大值){return Math.round((Math.random()*(Math.abs(max-min)))+min);}console.log(随机(1,6));

实例

返回1到10之间的随机数:

Math.floor((Math.random() * 10) + 1);

结果可能是:3.

试试看:这里

--

或使用lodash/descore:

_.随机(最小值,最大值)

文件:-罗达什-不受欢迎的

这已经晚了九年,但randojs.com让这成为了一个简单的一行:

rando(1, 6)

您只需要将其添加到html文档的头部,就可以轻松地使用随机性做任何事情。数组中的随机值、随机jquery元素、对象中的随机财产,甚至在需要时防止重复。

<script src="https://randojs.com/1.0.0.js"></script>