글실험 기록

로또 100만 원어치를 2만 번 사 봤다: 시뮬레이터로 확인한 확률

로또랩의 추첨 엔진으로 1,000게임짜리 실험을 20,000번, 모두 2,000만 게임을 돌렸습니다. 1등은 두 번 나왔고, 100만 원을 쓰면 4·5등 당첨금으로 평균 18만 원이 돌아왔습니다.

로또 공 7개와 1등 확률 1/8,145,060

로또랩을 만들게 된 질문은 단순했습니다. “로또를 100만 원어치, 1,000게임 사면 어떻게 될까?” 실제로 사 보기에는 아까운 돈이라, 실제 규칙과 똑같이 추첨하는 시뮬레이터를 만들었습니다. 이번에는 그 엔진을 그대로 가져와 같은 실험을 20,000번 반복했습니다. 모두 2,000만 게임, 가상으로 200억 원어치입니다.

먼저 계산부터

로또 6/45는 1부터 45까지 숫자 중 6개를 고릅니다. 가능한 조합은 45개 중 6개를 고르는 경우의 수, 8,145,060가지입니다. 추첨에서는 당첨번호 6개와 보너스 번호 1개를 뽑습니다.

등수별로 내가 고른 6개가 몇 개 맞는지에 따라 경우의 수를 세면 다음과 같습니다.

등수조건경우의 수한 게임의 확률
1등6개 일치11/8,145,060
2등5개 + 보너스 일치61/1,357,510
3등5개 일치2281/35,724
4등4개 일치11,1151/733
5등3개 일치182,7801/44.6

3등의 228은 이렇게 나옵니다. 당첨번호 6개 중 5개를 맞히는 방법이 6가지이고, 나머지 한 칸은 당첨번호도 보너스도 아닌 38개 중 하나여야 합니다. 6 × 38 = 228입니다. 5등은 당첨번호 중 3개(20가지)와 나머지 39개 중 3개(9,139가지)를 곱한 182,780입니다.

1,000게임을 사면 1등을 한 번이라도 맞힐 확률은 1 − (1 − 1/8,145,060)1,000, 약 0.0123%입니다. 8,000번 넘게 100만 원씩 써야 한 번 기대할 수 있는 확률입니다.

실험 방법

로또랩 웹사이트에서 실제로 돌아가는 추첨 코드(core.js)를 그대로 불러와 Node.js에서 실행했습니다.

  • 난수는 xoshiro128** 생성기를 씁니다. 1~45 사이 숫자를 고를 때 특정 숫자가 더 자주 나오지 않도록, 나누어떨어지지 않는 구간의 값은 버리고 다시 뽑습니다.
  • 6개 번호는 45개 공을 일부만 섞는 피셔–예이츠 방식으로 고릅니다. 모든 조합이 똑같은 확률로 나옵니다.
  • 실험 한 번은 “당첨번호를 한 번 추첨하고, 자동 번호 1,000게임을 산다”입니다. 이것을 20,000번 반복했습니다.
  • 시드를 고정해 두어 같은 코드를 다시 돌리면 같은 결과가 나옵니다.

M2 Pro 맥에서 2,000만 게임을 모두 계산하는 데 14초 걸렸습니다.

결과: 이론값과 거의 같았다

등수나온 횟수이론상 기대값1,000게임당
1등22.460.0001
2등1514.730.0008
3등558559.850.028
4등27,43627,292.621.37
5등448,879448,811.9222.44

2,000만 게임에서 1등은 두 번 나왔습니다. 기대값 2.46에 가까운 결과입니다. 200억 원어치를 사서 1등 두 번입니다.

실험 단위로 보면 이렇습니다.

  • 20,000번 중 3등 이상이 한 번이라도 나온 실험은 2.83%였습니다. 이론값 2.83%와 같습니다.
  • 4등 이상이 나온 실험은 75.3%였습니다. 네 번 중 세 번은 4등 이상을 한 번쯤 맞힙니다.
  • 아무것도 당첨되지 않은 실험은 한 번도 없었습니다. 1,000게임을 사면 5등은 적어도 7번, 많게는 42번 나왔습니다.

돈으로 바꾸면

실제 로또에서 금액이 정해진 등수는 4등(5만 원)과 5등(5천 원)뿐입니다. 1~3등 당첨금은 회차마다 판매액과 당첨자 수에 따라 달라지므로, 여기서는 4·5등 당첨금만 더했습니다.

실험 횟수01,0002,0003,0002만~4만 원: 1번4만~6만 원: 38번6만~8만 원: 282번8만~10만 원: 1,049번10만~12만 원: 1,807번12만~14만 원: 2,215번14만~16만 원: 2,581번16만~18만 원: 2,637번18만~20만 원: 2,210번20만~22만 원: 2,047번22만~24만 원: 1,574번24만~26만 원: 1,147번26만~28만 원: 867번28만~30만 원: 550번30만~32만 원: 374번32만~34만 원: 274번34만~36만 원: 150번36만~38만 원: 95번38만~40만 원: 31번40만~42만 원: 39번42만~44만 원: 9번44만~46만 원: 14번46만~48만 원: 5번48만~50만 원: 2번50만~52만 원: 1번52만~54만 원: 1번2만10만20만30만40만50만 원평균 180,810원고정 당첨금(4등 5만 원 + 5등 5천 원) 합계 · 20,000번의 100만 원 실험
100만 원어치(1,000게임)를 사는 실험을 20,000번 반복했을 때 돌려받은 4·5등 당첨금의 분포. 가장 운이 좋았던 실험도 53만 5천 원이었고, 구매액 100만 원을 넘긴 실험은 없었습니다.
100만 원을 썼을 때 돌려받은 4·5등 당첨금금액
평균180,810원
중앙값175,000원
하위 10% ~ 상위 10%105,000 ~ 265,000원
가장 운이 좋았던 실험535,000원
가장 운이 나빴던 실험35,000원

평균 180,810원은 계산으로 구한 기대값 180,435원과 거의 같습니다(5등 22.44번 × 5천 원 + 4등 1.365번 × 5만 원). 100만 원을 쓰면 고정 당첨금으로 18만 원 정도가 돌아온다는 뜻입니다. 20,000번 중 고정 당첨금만으로 원금을 되찾은 실험은 없었습니다. 가장 운이 좋았던 실험도 46만 5천 원을 잃었고, 절반은 82만 5천 원 넘게 잃었습니다.

숫자를 보고 나서

계산으로도 알 수 있는 내용이지만, 직접 돌려 보면 감각이 달라집니다. “1등 확률 814만분의 1”은 너무 큰 숫자라 와닿지 않는데, “200억 원어치를 사서 1등 두 번”이라고 하면 조금 더 실감이 납니다.

한 가지 흥미로웠던 건 5등은 생각보다 자주 나온다는 점입니다. 1,000게임이면 평균 22번입니다. 당첨 알림이 계속 오니 “조금만 더 하면 될 것 같은” 느낌이 들기 쉽습니다. 하지만 그 22번을 다 합쳐도 11만 원입니다.

로또랩에서는 같은 실험을 브라우저에서 바로 돌려 볼 수 있습니다. 구매 금액을 1천만 원, 1억 원, 10억 원까지 올려 보면, 1등이 얼마나 멀리 있는지 직접 확인할 수 있습니다. 모든 계산은 내 브라우저에서 하고, 실제 돈은 들지 않습니다.

이 글에서 다룬 도구

로또랩

100만원어치 사면 정말 당첨될까

자세히 보기

루샨 · lucianLabs 운영자

AI 에이전트와 일하며 필요한 도구를 직접 만들고, 그 과정에서 얻은 숫자와 시행착오를 기록합니다. 글에 틀린 내용이 있으면 알려주세요.