JavaScript 用 Math.random() 生成 [0,1) 浮点数,配合 Math.floor、toFixed 或 Math.round 可得指定范围整数或保留位数小数;可随机取数组元素或 Fisher-Yates 洗牌;广泛用于交互动画、A/B 测试、游戏逻辑、轻量 token 及假数据模拟。

JavaScript 生成随机数主要靠 Math.random(),它返回一个大于等于 0、小于 1 的浮点数。配合简单运算,就能得到指定范围的整数或小数,满足大多数日常需求。
生成指定范围的随机整数
这是最常用的操作。比如要生成 1 到 100 之间的随机整数:
Math.floor(Math.random() * 100) + 1
关键点:用 Math.random() 获取 [0, 1),乘以范围长度(如 100),再用 Math.floor 向下取整,最后加起始值(+1)对齐区间。
立即学习“Java免费学习笔记(深入)”;
通用写法(含边界检查):
- min 和 max 都是整数,且 min ≤ max
- Math.floor(Math.random() * (max - min + 1)) + min
生成随机小数(保留位数)
比如模拟价格、温度、评分等场景,常需保留 1–2 位小数:
parseFloat((Math.random() * 10).toFixed(2)) —— 生成 0.00 到 9.99 的两位小数
更稳妥的做法是先乘、四舍五入、再除回:
- Math.round(Math.random() * 1000) / 100(两位小数)
- 避免
toFixed返回字符串,影响后续计算
从数组中随机取元素或打乱顺序
抽奖、推荐、测试数据生成都离不开这个:
- 随机取一个:arr[Math.floor(Math.random() * arr.length)]
- 随机打乱(Fisher-Yates 洗牌):
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
常见实际应用场景
随机数不是玩具,而是真实项目中的基础设施:










