物価高で身の回りのものの値段が上がっていく中、なかなか給与は増えていない、選挙でも論点の一つに上がっていましたね。普段の生活以外でも、長期休暇期間の旅行などの余暇の費用も物価が上がり、懐事情は寂しい限り。そんななかふと思いました。

一発、宝くじでも当たらないかなあ…
いや、冗談半分です。ほんのちょっとだけ本気。
休みの日の頭の体操も兼ねて、「宝くじって実際どのくらい当たるのか」を、中央値という視点から考えてみました。
【はじめに】宝くじの期待値は50%以下という事実
宝くじの期待値(≒買ったときの平均的な戻り金額)は、販売額の半分以下です。
つまり、1枚300円の宝くじを買った場合、理論的に戻ってくる金額はおよそ140~150円。残りの約150円は、自治体の収益や運営経費に回っています。
これってどういうこと?と思う方も多いかもしれません。具体的に計算してみましょう。
販売総数1,000万枚と仮定し、当選金額と本数は下記の仕様とします。
等級 | 当選金額 | 当選本数 |
---|---|---|
1等 | 5億円 | 1本 |
2等 | 100万円 | 100本 |
3等 | 1万円 | 10,000本 |
4等 | 3,000円 | 100,000本 |
5等 | 300円 | 1,000,000本 |
すると、上記の表に当選確率と当選金額×当選確率を書き加えると…
等級 | 当選金額 | 当選本数 | 当選確率 | 当選金額×当選確率 |
---|---|---|---|---|
1等 | 5億円 | 1本 | 1 / 10,000,000 | 50円 |
2等 | 100万円 | 100本 | 100 / 10,000,000 | 10円 |
3等 | 1万円 | 10,000本 | 10,000 / 10,000,000 | 10円 |
4等 | 3,000円 | 100,000本 | 100,000 / 10,000,000 | 30円 |
5等 | 300円 | 1,000,000本 | 1,000,000 / 10,000,000 | 30円 |
それぞれの等級の当選金額×当選確率の和がこの宝くじの期待値なので、
50円(1等)+10円(2等)+10円(3等)+30円(4等)+30円(5等)=130円
つまり、300円の宝くじを買って、130円返ってくる、170円(6割近く)はドブに捨てるといっても過言ではありません。
宝くじは「中央値」で考えたほうがよいのでは?
というわけで宝くじはほぼ確実に損する確率が高いビジネスであることが分かりました。「3,000円払って1,500円返ってくる」感じです、理論上は。
でも、冷静に考えてください、感覚的にそんなことあります?実際は、「3,000円払って末等の300円返ってくる」ことの方が圧倒的に多くないでしょうか。いわば、投資回収率10%が現実的なところかな~と思われます。
そこで考えたいのが、期待値と中央値です。
- 平均値:すべての当せん金額を足して、購入者数で割ったもの
- 中央値:当せん金額を小さい順に並べたとき、ちょうど真ん中の金額
つまり、中央値は「買った人のうち半分はこの金額より少なく、半分は多い」というリアルな真ん中。期待値だと、1等の当選金額が大きすぎてそっちに引っ張られてしまい、どうしても数字が高くなりがちで現実離れしてしまうので、なんでもかんでも期待値で考えるのは不適当です。
宝くじの「夢」と「現実の落とし所」を知るには、平均よりも中央値のほうが役に立つんです。
宝くじの中央値をシミュレーションしてみる
では、ここからは具体的に宝くじの中央値をいくつかシミュレーションしてみましょう。
宝くじの基本仕様
等級 | 当選金額 | 当選本数 |
---|---|---|
1等 | 5億円 | 1本 |
2等 | 100万円 | 100本 |
3等 | 1万円 | 10,000本 |
4等 | 3,000円 | 100,000本 |
5等 | 300円 | 1,000,000本 |
簡単のため、バラ購入を前提に考えたいと思います。バラの場合、前後賞を加味する必要はないので、上記の表のような当選金額と本数の分布になると考えて差し支えありません。
ただし厳密な計算をしようとすると、Pythonでプログラミングコードを書いて本格的に動かす必要があるので、簡易的な思考実験とコードの結果もあわせて提示します。
思考実験では低確率な事象を無視しているので、少々数字がずれることは悪しからず…。
ちなみに実際に書いたコードはこちら。考え方は自分でやったものの、プログラミングはあまり専門ではないので、若干ChatGPTの助けも借りつつです。
import numpy as np
# 宝くじの仕様
prizes = np.array([500_000_000, 1_000_000, 10_000, 3_000, 300, 0])
probs = np.array([
1 / 10_000_000, # 1等
100 / 10_000_000, # 2等
10_000 / 10_000_000, # 3等
100_000 / 10_000_000, # 4等
1_000_000 / 10_000_000, # 5等
1 - (1 + 100 + 10_000 + 100_000 + 1_000_000) / 10_000_000 # ハズレ
])
def simulate_lottery(num_tickets, n_simulations=100000):
results = np.random.choice(prizes, size=(n_simulations, num_tickets), p=probs).sum(axis=1)
return np.median(results)
# シミュレーション対象
cases = {
"① 1枚": 1,
"② 10枚": 10,
"③ 100枚": 100,
"④ 1,000枚": 1000,
"⑤ 10,000枚": 10000
}
# 実行と出力
for label, tickets in cases.items():
median = simulate_lottery(tickets)
print(f"{label} の回収額中央値: {int(median):,}円")
①300円分(1枚)購入した場合
1枚購入した場合、当たる可能性が一番高いのは5等(300円)。
ですが、実際は当たらない可能性の方が圧倒的に高いので、中央値としては0円になります。ここまでは計算するまでもないでしょう。
① 1枚 の回収額中央値: 0円
②3,000円分(10枚)購入した場合
宝くじは10枚買うと必ず5等(300円)が1枚は当たるように設計されています。
つまり、最低でも300円は戻ってきます。
- それ以外の等級が当たる確率は極めて低いため、中央値ベースでは「300円の1枚+9枚は外れ」が現実的
- 支出:300円 × 10枚 = 3,000円
- 戻り:300円
→ 中央値の受け取り金額は300円
② 10枚 の回収額中央値: 300円
③30,000円分(100枚)購入した場合
5等は10枚に1枚の割合で当たるため、100枚買えば5等が10枚=3,000円分は戻ります。
ただしそれ以上の高額当選は、依然として非常に低確率。
- 期待される当選内訳(中央値ベース)
- 5等:10枚 → 300円 × 10 = 3,000円
- 他の等は当たらないと仮定
→ 中央値の受け取り金額は3,000円
③ 100枚 の回収額中央値: 6,000円
④300,000円分(1,000枚)購入した場合
この枚数になると、4等(3,000円)が1枚程度当たる確率が出てきます(確率1%)。
- 5等:100枚 → 300円 × 100 = 30,000円
- 4等:1枚くらい → 3,000円
→ 中央値の受け取り金額は33,000円
④ 1,000枚 の回収額中央値: 69,100円
⑤3,000,000円分(10,000枚)購入した場合
この規模になると、3等(1万円)に1本程度当たる可能性が見えてきます(確率0.1%)。
- 5等:1,000枚 → 300円 × 1,000 = 300,000円
- 4等:10枚 → 3,000円 × 10 = 30,000円
- 3等:1枚 → 10,000円
→ お中央値の受け取り金額は340,000円
そして、すみません、こちらの計算をしていたら計算量が大きくてクラッシュしてしまいました・・・。④の感じを踏まえると⑤の結果は60~80万円くらいの間に中央値としては落ち着きそうな感じはします。
セッションがクラッシュしました
ということで、ぎりぎりまで攻めるべく追加で、下記も検証してみました。5,000枚くらいまではクラッシュせずに計算できました。やはりこの数字を見ても、10,000枚なら60~80万円の間くらいに落ち着くとみて問題ないでしょう。
④-1) 5,000枚 の回収額中央値: 350,800円
④-2) 6,000枚 の回収額中央値: セッションがクラッシュしました
④-3) 7,000枚 の回収額中央値: セッションがクラッシュしました
④-4) 8,000枚 の回収額中央値: セッションがクラッシュしました
【まとめ】中央値で見ると夢はさらに厳しい
「期待値130円でも1発逆転があるのが宝くじ」と思っている人も多いと思いますが、中央値ベースで見れば、ほとんどの人は1割も回収できません。
100枚(3万円分)買っても、当たるのはだいたい3,000円。
1,000枚(30万円分)でようやく3万円前後…、これが現実です。
とはいえ、買わなければ当たらないのも宝くじの真理、ここまでいろいろシミュレーションを考えてみたものの、夢を買いに宝くじを買いたいと思います!笑
