スマホゲームなどでよく見かける「ボックスガチャ」。
中身が有限で、引いた分だけ当たりが減っていくという仕組みは、確率を考えるのに役立ちます。
今回は、ボックスガチャの「当たる確率」を計算する簡易アプリを作ってみました。
仕組みや使い方、数学的背景も含めて紹介していきます。
ボックスガチャとは何か
ボックスガチャとは、あらかじめ内容物が決まっており、引くたびに在庫が減っていくタイプのガチャ形式です。
一般的な無限リセット型ガチャとは異なり、ユーザーの選択や引き運がダイレクトに結果に影響するため、より戦略的な要素が求められます。
たとえば、「100個の中に当たりが5個」という設定があった場合、1回目に当たる確率は5/100(5%)ですが、ハズレを1つ引いた後は、残り99個中5個が当たりとなるため、次は約5.05%に上昇します。
このように「引くごとに確率が変動する」という点が大きな特徴です。
ボックスガチャは以下のようなシチュエーションで見かけます。
- ソーシャルゲームのイベント報酬抽選 
- 景品キャンペーンの抽選 
- アナログカードゲームや福袋形式の商品構成 
 
確率計算の仕組みを実装してみた
今回作ったアプリは、「全体個数」と「当たりの個数」を入力することで、任意の引いた回数に対する「当たりが出る確率」を計算するものです。
ポイントは「超幾何分布(Hypergeometric Distribution)」の利用です。
これは、置き換えをしない抽選の確率モデルに用いられる分布で、ボックスガチャの性質にぴったり合致します。
超幾何分布の確率計算式:
P(X = k) = [C(K, k) × C(N-K, n-k)] ÷ C(N, n)
- N:全体の数 
- K:当たりの数 
- n:引く数 
- k:当たりを引く数 
- C(a, b):a個からb個を選ぶ組み合わせ 
この式をもとに、ある回数で「1回以上当たりを引く確率」や「すべて当たりを引ききる確率」を出すことができます。
アプリの使い方と応用可能性
アプリは次のような流れで使います:
- 全体の個数(例:100)を入力 
- 当たりの個数(例:5)を入力 
- 引く回数(例:10)を入力 
- 「確率計算」ボタンを押すと、1個以上当たる確率が表示される 
これを活用すると、たとえば以下のような場面で有効です:
- 石をどれだけ使えば当たりを引けるかの期待値を調べたいとき 
- イベントで複数報酬がある場合、リセットのタイミングを判断したいとき 
- 販売側が「当たり率がどの程度体感されるか」を試算したいとき 
また、この考え方を応用すれば、残りの在庫状況に応じて「あと何回で当たる確率が90%になるか?」という逆算も可能です。