JavaScript生成随机数核心是Math.random(),返回[0,1)浮点数;整数范围用Math.floor(Math.random()(max-min+1))+min,小数范围用Math.random()(max-min)+min。
JavaScript 里生成随机数,核心靠 Math.random(),它返回一个大于等于 0、小于 1 的浮点数(如 0.348291...)。想得到指定范围的整数或小数,需要简单换算——不是直接“生成”,而是“调整范围”。
用 Math.floor(Math.random() * (n + 1))。因为 Math.random() 最大接近 1 但不等于 1,乘以 (n + 1) 后最大接近 n + 1,再向下取整就能覆盖 0 到 n 全部整数。
Math.floor(Math.random() * 6) → 0~5 的随机整数(常用于模拟骰子)Math.floor(Math.random() * 101) → 0~100 的随机整数公式是:Math.floor(Math.random() * (b - a + 1)) + a。先算出区间长度(+1 是为了包含两端),缩放随机值,再平移到起始位置。
Math.floor(Math.random() * 11) + 5
a ,否则结果可能不符合预期
去掉取整即可:Math.random() * (b - a) + a。这是最直接的线性映射。
Math.random() * 10 + 20 → 20.0 到 30.0 之间的小数(含 20.0,不含 30.0).toFixed(2),但注意它返回字符串;要数字就用 parseFloat(...) 或 + 转换Math 不只是用来随机,几个高频辅
助方法也常一起出现:
Math.abs(x):取绝对值,避免负数干扰范围计算Math.round(x):四舍五入(适合中间值取整,但注意 0.5 总向偶数舍入)Math.max(...) / Math.min(...):从多个随机值中找极值,比如生成 10 个随机数后取最大Math.pow(x, n) 或 x ** n:做随机指数变换(如模拟增长分布)