ランダムは本当に公平? — 疑似乱数のはなし
ガイド
コンピューターは実は完全なランダムを自ら作り出すことができません。その代わり、決まった計算式によって予測が非常に難しい数列を生成しており、これを疑似乱数(pseudo-random number)と呼びます。
どうやって作られるのか
ブラウザには乱数を生成する機能が組み込まれています。この機能は内部の状態値から出発し、複雑な計算を経て0から1の間の数値を返し、返すたびに状態値を更新して次の数値を作り出します。人間が結果を予測することは事実上不可能です。
「疑似」なのに公平な理由
完全なランダムでなくても、各結果が出る確率が均等で、次の値を予測できないのであれば、抽選・ゲーム用途としては十分公平です。重要なのは「特定の項目が有利にならない」という点であり、優れた乱数生成機能はこの性質をよく満たしています。
- 各項目の確率が均等か → 公平性の核心
- 次の結果を予測できないか → 操作不可能性
- 偏った選び方(例:先頭優先)を使っていないか → 使い方の問題
より強力なランダム性が必要なとき
セキュリティや暗号のように非常に高い予測不可能性が求められる場合は、暗号論的乱数(crypto)を使用します。しかし、ランチのメニューや罰ゲーム、チーム編成のような日常的な決め事には、通常の乱数でも全く問題ありません。
まとめると、「疑似乱数」という名前のせいで不公平に感じられるかもしれませんが、確率が均等で予測不可能であれば、抽選には十分すぎるほどです。