JavaScript生成指定范围随机整数应使用Math.floor(Math.random()*(max-min+1))+min;例如randomInt(1,6)模拟掷骰子,避免用Math.round或Math.ceil以免概率不均或越界。

JavaScript 生成随机整数,核心是结合 Math.random() 和数学取整方法。它本身只返回 [0, 1) 区间的浮点数,需换算成目标范围并确保结果为整数。
基础原理:用 Math.random() 构造区间
Math.random() 返回大于等于 0、小于 1 的伪随机浮点数。要得到 [min, max] 范围内的整数(含两端),通用公式是:
Math.floor(Math.random() * (max - min + 1)) + min
说明:
立即学习“Java免费学习笔记(深入)”;
-
max - min + 1是该范围内整数的总个数(例如 [3, 7] 共 5 个数) - 乘以这个数,把 [0, 1) 映射到 [0, max - min + 1)
-
Math.floor()向下取整,得到 [0, max - min] 的整数 - 最后加
min,整体平移到 [min, max]
常见范围写法示例
生成 1 到 10 之间的随机整数(含 1 和 10):
Math.floor(Math.random() * 10) + 1
生成 0 到 99 之间的随机整数(含 0 和 99):
Math.floor(Math.random() * 100)
生成 -5 到 5 之间的随机整数(含 -5 和 5):
Math.floor(Math.random() * 11) - 5
注意边界与取整方式的区别
避免使用 Math.round(),它会使两端概率减半。例如:Math.round(Math.random() * 10) 生成 [0,10],但 0 和 10 出现概率只有其他数的一半。Math.ceil() 容易越界或漏掉最小值,不推荐直接用于整数随机。
始终优先用 Math.floor() 配合正确区间长度。
封装成可复用函数
可写一个简洁工具函数:
function randomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
调用示例:randomInt(1, 6) 模拟掷骰子randomInt(100, 200) 生成百位随机整数










