AI가 로또 당첨 번호를 실제로 예측할 수 있나요?
공정한 추첨에서는 이전 회차가 다음 회차 확률을 바꾸지 않는다. AI가 과거 번호를 분석해도 고정된 6개 조합의 1등 확률은 814만5060분의 1이다.
당첨 확률은 바뀌지 않는다. 그렇다면 AI 번호 추천기는 무엇을 만들고 어디에서 돈을 받아야 할까.
동행복권에 따르면 로또6/45는 1부터 45까지에서 6개를 고르는 게임이다. 한 게임은 1,000원이며 1등 확률은 814만5060분의 1이다. 수동, 자동, 반자동 가운데 무엇을 선택해도 조합 하나의 확률은 같다.
AI를 붙인 로또 번호 추천 사이트는 유입과 결제를 만들 수 있을까. 답은 ‘AI가 미래 번호를 맞힌다’가 아니라, 예측할 수 없는 숫자를 어떤 경험으로 포장하느냐에 달렸다. 당첨 사례를 내세우지 않고도 팔 수 있는 제품인지가 이번 질문의 중심이다.
동행복권에 따르면 로또6/45는 1부터 45까지에서 6개를 고르는 게임이다. 한 게임은 1,000원이며 1등 확률은 814만5060분의 1이다. 수동, 자동, 반자동 가운데 무엇을 선택해도 조합 하나의 확률은 같다.
과거 당첨 번호를 학습시킨 AI도 이 조건을 바꾸지 못한다. Management Science에 실린 연구는 복권 이용자가 최근 번호를 피하거나 반복해서 고르는 두 편향을 함께 확인했다. 이전 추첨과 다음 추첨이 독립인데도 ‘나올 차례’와 ‘잘 나오는 번호’를 믿는 현상이다.
로또 매쓰처럼 최근 회차의 출현 빈도와 제외 조건을 조합하는 도구는 선택 과정을 구조화한다. 사용자는 최근 회차 출현 빈도를 살피고 포함할 번호와 제외할 번호를 정한 뒤 결과를 저장할 수 있다. 다만 이런 필터는 취향을 반영할 뿐 다음 추첨의 적중 확률을 높이지 않는다.
AI라는 이름은 여기서 쉽게 과장된다. 여러 모델이 같은 번호를 추천했거나 설명이 정교하다는 사실도 확률 우위의 증거가 아니다.
정직한 서비스라면 LLM에 "당첨 번호를 예측하라"고 시키지 않으며 번호 생성은 서버의 난수 기능으로 분리해야 한다. Python 공식 문서는 `secrets`가 운영체제가 제공하는 강한 난수원을 사용한다고 설명한다.
구현 순서는 구체적이다. 사용자가 게임 수, 선호 번호, 제외 번호를 입력하면 서버가 범위와 중복을 검사한 뒤 `SystemRandom().sample(range(1, 46), 6)` 같은 방식으로 여섯 개를 중복 없이 뽑아 정렬한다.
서버는 확정 조합, 생성 시각, 알고리즘 버전, 요청 ID를 먼저 저장한다. 그다음 Claude API에 번호를 보내 이름과 짧은 설명만 생성하게 한다. Claude의 Structured Outputs는 `output_config.format`에 JSON Schema를 지정해 결과 형식을 고정할 수 있다.
Claude Code로 만든다면 난수 모듈, 입력 검증, 기록 저장, 설명 API를 별도 파일로 나누면 된다. AI가 돌려준 번호가 원본과 다르면 설명을 버리고 고정 문구를 표시한다. 화면에는 생성 방식과 공식 확률도 함께 보여준다.
핵심 번호 생성에는 API 비용이 들지 않는다. 모델 호출은 ‘균형형 조합’, ‘기념일 제외형’처럼 결과를 읽기 쉽게 설명할 때만 필요하다. AI 장애가 나도 번호 생성과 확률 고지는 계속 작동해야 한다.

오픈채팅 논의에서는 트래픽을 모은 뒤 광고나 결제로 연결할 수 있다는 의견이 나왔다. 외부에서 써본 사람들 사이에서도 무료 추천기는 시험해도 무작위 선택보다 낫다는 증거 없이는 구독료를 내기 어렵다는 반응이 적지 않았다. 반대로 기록과 시각화, 여러 조합 관리에는 실용성이 있다는 평가도 있었다.
유료 기능은 당첨 가능성과 분리해야 한다. 무료 이용자는 번호 생성과 확률 안내를 받고 결제 이용자는 조합 보관, 조건 프리셋, 광고 제거, 회차별 결과 확인을 쓸 수 있다. 요금제가 비쌀수록 더 잘 맞는다는 인상을 주면 안 된다.
개인 개발자는 처음부터 여러 AI API를 연결할 이유도 적다. 서로 다른 모델이 비슷한 번호를 냈다는 연출은 독립적인 검증이 아니다. 모델 비교가 필요하다면 문체, 응답 속도, 설명 비용을 비교해야 한다.
수익성은 검색 유입만으로 확정되지 않는다. 무료 생성 후 재방문율, 저장 기능 사용률, 광고 제거 전환율을 따로 측정해야 한다. ‘당첨 기대’에서 들어온 방문자가 편의 기능에 돈을 낼지는 실제 제품에서 확인할 문제다.
복권 명당이 신뢰를 얻듯 초기 당첨 사례가 필요하다는 의견도 있었다. 그러나 판매량이 많은 곳에서 당첨자가 더 자주 나오는 현상은 알고리즘의 우위를 입증하지 못한다. 많은 조합 가운데 잘 맞은 결과만 공개하면 성과는 더 커 보인다.
검증하려면 추천 번호를 추첨 전에 공개하고 변경 불가능한 시각을 남겨야 한다. 같은 수의 OS 난수 조합을 대조군으로 만들어 여러 회차 동안 등수와 일치 개수를 함께 기록한다. 생성한 조합 수와 구매 비용도 빠뜨리면 안 된다.
표본이 작은 상태에서 나온 3개나 4개 일치는 홍보 문구가 될 수 없다. 써본 사람들 사이에선 과거 회차 백테스트보다 미래 추첨을 대상으로 한 공개 검증을 요구하는 목소리가 있었다. 결과가 우연 범위를 벗어나지 못해도 기록을 지우지 않는 투명성이 제품 신뢰를 만든다.
현행 복권 및 복권기금법은 계약 없는 영리 목적의 온라인복권 판매를 금지한다. 최종 구매자를 대신한 온라인복권 구매와 금지된 판매의 알선도 금지 대상이다. 번호를 보여주는 서비스와 돈을 받아 복권을 대신 사는 서비스는 같은 사업이 아니다.
구매는 이용자가 동행복권에서 직접 끝내도록 분리하는 편이 안전하다. 동행복권의 인터넷 로또 운영 한도는 회차당 1인 5,000원이다. 추천 사이트가 티켓을 보관하거나 당첨금을 대신 받아준다는 구조도 피해야 한다.
광고 문구에는 더 좁은 선이 필요하다. 공정거래위원회는 거짓·과장 광고와 중요 사실을 숨기는 기만 광고를 부당 표시·광고로 분류한다. ‘AI 사용’은 기능 설명이지만 ‘당첨 확률 상승’과 ‘검증된 적중률’은 객관적 근거가 필요한 성과 주장이다.
AI 로또 서비스가 팔 수 있는 상품은 미래 예측이 아니다. 번호 선택의 번거로움, 기록 관리, 설명이 붙은 오락 경험이 상품이다. 이 사실을 첫 화면에 공개할 수 없다면 서비스의 수익 모델부터 다시 정의해야 한다.
공정한 추첨에서는 이전 회차가 다음 회차 확률을 바꾸지 않는다. AI가 과거 번호를 분석해도 고정된 6개 조합의 1등 확률은 814만5060분의 1이다.
서버의 OS 난수로 번호를 먼저 확정하고 저장한다. Claude 같은 모델은 확정된 조합을 바꾸지 않은 채 설명과 분류만 JSON 형식으로 생성하게 한다.
기록, 필터, 광고 제거 같은 편의 기능을 파는 모델은 구성할 수 있다. 다만 당첨 확률 상승을 근거 없이 광고하거나 복권을 대신 구매·판매하는 구조는 피해야 한다.