跳转到主内容
极星编程网:以代码为星,赴技术山海!

javascript如何生成随机数_有哪些应用场景

JavaScript用Math.random()生成随机数,可配合运算得指定范围整数或小数:0–N整数用Math.floor(Math.random()N),a–b整数用Math.floor(Math.random()(b-a+1))+a,a–b浮点数用Math.random()*(b-a)+a,固定小数位用toFixed结合parseFloat或+号转换。 JavaScript 生成随机数主要靠 Math.random() ,它返回一个大于等于 0、小于 1 的浮点数(如
0.348291...
)。再配合简单运算,就能得到指定范围的整数或小数。 怎么生成常用类型的随机数 ✅ 生成 0–N 之间的整数(含 0,不含 N):
Math.floor(Math.random() * N)
✅ 生成 a–b 之间的整数(含 a 和 b): 立即学习 “ Java免费学习笔记(深入) ”;
Math.floor(Math.random() * (b - a + 1)) + a
✅ 生成 a–b 之间的浮点数(含 a,不含 b):
Math.random() * (b - a) + a
Comet AI 浏览器 下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。 下载 ✅ 生成带固定小数位的随机数(比如保留两位小数):
parseFloat(Math.random().toFixed(2))
或更稳妥写法:
+(Math.random() * 100).toFixed(2)
常见又实用的应用场景 抽奖/转盘/刮刮卡 :用随机数决定中奖编号或奖品索引,比如从数组
['谢谢参与', '5元券', 'iPhone']
中随机取一项 模拟数据测试 : 前端 开发时快速生成用户年龄、订单金额、评分等假数据,省得手动填 游戏逻辑 :怪物出现位置、伤害浮动值、掉落物品概率(如
Math.random() 表示 10% 掉落率)
防缓存请求 :给 API URL 加随机参数(如
?t=1712345678901
),避免 浏览器 读取旧缓存 随机排序(洗牌) :配合
Array.sort(() => Math.random() - 0.5)
简单打乱数组(注意:不完全均匀,正式项目建议用 Fisher-Yates 算法) 要注意的几个细节 ⚠️ Math.random() 不是密码学安全的 —— 别用它生成 Token、加密密钥或验证码;需要高安全性时请用
crypto.getRandomValues()
⚠️ 每次调用都独立,无法“重播”同一串随机数;如需可重现的随机序列,得自己实现伪随机数生成器(PRNG),比如用 seed 配合线性同余法 ⚠️ 在循环里频繁调用
Math.random()
没问题,但别误以为连续两次调用会“更随机”——它本身已足够离散 基本上就这些。用熟了就是几行代码的事,但边界处理和场景适配容易忽略。

相关文章