Toolify

サイコロ(d4〜d100、補正値・履歴対応)

個数・面数(d4/d6/d8/d10/d12/d20/d100 またはカスタム)・補正値を指定。各振り目は crypto.getRandomValues で生成、棄却法で完全均等分布。

仕組み

乱数生成の仕組み

各ダイスは crypto.getRandomValues — ブラウザの暗号学的に安全な乱数API(HTTPSセッションも同じ実装)を使用。さらに棄却法で完全に均等な確率分布を保証します。素朴な「乱数 % 面数」は2³²が面数で割り切れない場合に偏りが出るため、本ツールでは偏りを発生させる値を捨てて再抽選します。

結果、d100 で1〜36が出やすくなる(粗末な実装でよくあるバグ)こともなく、d3 で1・2・3が均等に出ます。物理ダイスを無限精度にしたのと同じ数学です。

TRPG(テーブルトークRPG)記法

標準記法: 「NdS+M」 — N個のS面ダイス、M補正値。「2d6+3」は6面ダイス2個振って合計に3足す。「1d20+5」はD&Dの典型的な攻撃判定(キャラクター修正値+5)。

標準ダイスセット: d4(三角錐)、d6(立方体)、d8(八面体)、d10(五角形十偏方形)、d12(十二面体)、d20(二十面体)。d100は通常 2d10(十の位+一の位)で振りますが、本ツールの d100 プリセットで一発振り可能。

活用シーン

D&D / パスファインダー / TRPG全般: 攻撃判定 d20+5、ダメージ判定 1d8+3、キャラ作成 4d6 drop lowest など。

ランダム選択: N人から1人選ぶ場合 dN を振る。7人なら sides=7。暗号学的乱数で公平性が保証されます。

確率の学習: 大量に振って分布を観察。複数ダイスの和は中心極限定理により正規分布に近づきます。

意思決定: 「Xすべきか」の50/50は d2、重み付け決定は d10で閾値設定(1〜7=Yes、8〜10=Noで70/30)。

よくある質問

本当に公平?

はい。crypto.getRandomValues + 棄却法で各面の確率が完全に等しくなります。modulo 演算による端の偏りは発生しません。

ダイスの最大個数は?

1回50個まで。それ以上必要なら複数回振ってください(各々独立)。

面数の最大は?

1000まで。それ以上は数学的には動きますが用途が限定的です。

お気に入りの組合せを保存できる?

未対応です。よく使う「攻撃判定」「ダメージ判定」のプリセット保存機能を今後検討中。

なぜ d20 が有名?

Dungeons & Dragons が技能判定や攻撃判定で標準採用。各面の確率5%で、d100ほど煩雑にならず細かい差を表現できる絶妙な粒度。

なぜ履歴は10件まで?

画面を整理しておくため。長期ログが必要なら結果をメモアプリかキャラシートにコピーしてください。

物理ダイスは不要になる?

機能的には代替可能、特にオンラインゲームでは。物理ダイスは触感・儀式性で愛用されますが、暗号学的乱数の数字ロールは少なくとも同じくらい公平です。

入力データはサーバーに送信?

いいえ。すべてローカルで完結。

関連ツール

最終更新: