返回随机工具

免费骰子模拟器 — D&D 跑团 dice notation,密码学公平 | Vectobox

面向 D&D / Pathfinder / 跑团玩家的免费在线骰子,完整支持 dice notation(4d6kh3、2d20kl1、3d6!)、优势/劣势、爆击骰、D&D 5e 属性骰一键预设。基于 Web Crypto API + 拒绝采样,彻底消除 Math.random 的模偏差。

CSPRNG
快速掷骰已掷 0 次
数量
每次掷 1 – 100 颗
统计0 次

至少累计 30 次掷骰才能计算卡方公平性。

Web Crypto 拒绝采样 — 消除模偏差

ECMAScript 的 `Math.random()` 实现由引擎决定,并不要求达到密码学强度(V8 使用 xorshift128+)。常见写法 `Math.floor(Math.random() * N) + 1` 在 N 不是 2 的幂时存在微小但真实的模偏差 —— d100 的偏差是 96 / 2³² ≈ 2.2×10⁻⁸,肉眼看不见但确实存在。本工具采用 `crypto.getRandomValues(new Uint32Array(1))`(W3C Web Crypto API)+ Daniel Lemire 2019 提出的拒绝采样:≥ ⌊2³² / N⌋ × N 的值被丢弃并重抽,保证每一面严格 1/N。

完整 dice notation

解析器实现了 TTRPG 圈通行的 dice notation:`NdX` 表示 N 颗 X 面骰、`kh`/`kl` 保留最高/最低、`dh`/`dl` 舍弃最高/最低、`!` 爆击(Savage Worlds Acing)、`!!` 合并爆击、`r` 重掷、`>=N` 计数成功(暗影狂奔 / WoD 骰池)。也支持常数加成与混合表达式:`2d6-1d4+3` 是合法的惩罚式。

实时公平性检验

每次保留的骰点都会增量进入直方图。当某面数的累计次数 ≥ 30 时自动跑 Pearson χ² 拟合优度检验(假设均匀分布,df = N − 1),通过正则化不完全 Gamma 函数得到 p 值告诉你实测分布与理论是否相符。把 CSPRNG 关闭即可对比 `Math.random` 的差异。

隐私与适用范围

全部掷骰、日志和统计仅保存在浏览器 `localStorage` 中 —— 不会发送任何网络请求,也不对你的掷骰做任何分析。本工具仅用于娱乐与教学,不是博彩产品。

常见问题

这个骰子模拟器真的随机吗?
是的。每次掷骰都通过 W3C Web Crypto API(`crypto.getRandomValues`)从 CSPRNG 取数,再配合 Lemire 拒绝采样,保证每一面概率严格 1/N。统计面板会实时显示拒绝计数,可随时自行核对。
什么是 dice notation?4d6kh3 怎么写?
`4d6kh3` 表示:掷 4 颗 6 面骰,保留最高的 3 颗求和 —— 这是 D&D 5e 经典的属性骰方法。解析器同时支持 `kl`(保留最低)、`dh` / `dl`(舍弃最高/最低)、`!`(最大面爆击)、`!!`(合并爆击)、`r1`(出 1 重掷)、`>=5`(计数成功)以及加成 `+2` / `-1d4` 等。
为什么 Math.random 不适合掷骰?
ECMAScript 规范只要求 `Math.random()` “近似均匀”,V8 用的是 xorshift128+,速度快但并非 CSPRNG,在对抗环境下可预测。`Math.floor(Math.random() * N) + 1` 对任何不整除 2³² 的 N 都会引入微小模偏差。日常掷骰可能看不出来,但正确做法依然是 `crypto.getRandomValues` + 拒绝采样,在现代浏览器里几乎没有性能成本。
怎么用这个工具掷 D&D 5e 属性?
切到「表达式」标签,点 “D&D 5e 属性骰” 预设。工具会连续掷 6 次 `4d6kh3`,显示六个属性值、它们的均值和标准差,并与理论值(均值 15869/1296 ≈ 12.24、σ ≈ 2.85)对比。
5e 的优势 / 劣势是什么?
D&D 5e 中优势 = 掷 2 颗 d20 取较高(`2d20kh1`),劣势 = 取较低(`2d20kl1`)。快速掷骰标签的对应按钮就是这两个表达式的快捷方式。理论期望:优势 13.825,劣势 7.175(普通 d20 是 10.5)。
爆击骰(Savage Worlds Ace)怎么算?
当一颗骰子掷到最大面时,再掷一次并累加;如果又掷到最大面就继续。表达式:`1d6!` 表示一颗 6 面爆击骰,理论期望严格等于 4.2(几何级数 3.5 / (1 − 1/6))。工具设置了单颗骰最多 50 次爆击的安全上限,防止极端输入。

相关工具