내가 직접 만든 로또 번호 생성기, 단순 랜덤이 아님!

로또 번호 생성기를 만들어봤습니다.

평소에 뭔가 직접 만들고, 그게 완성되어 가는 과정에서 문제가 해결되는 걸 좋아하는데요.


로또 6/45 시뮬레이터 바로가기

 


예전에도 로또번호 생성기를 만들어 본 적이 있었어요.



난수 생성 방식 로또 번호 생성기

처음 만들었던 로또번호 생성기는 난수를 발생시켜서 무작위로 숫자를 뽑내는 방식이었습니다.  이번엔 인공지능의 도움을 받아서 한층 업그레이드 된 로또 번호 생성기를 만들었는데요. 단순히 무작위 숫자를 뿅! 하고 보여주는 도구가 아니라, 실제 로또 추첨기의 느낌을 살리고 싶었습니다.

물론 완벽하지는 않지만 나름의 로직이 들어가 있기 때문에 좀 더 실제와 가까운 방식으로 숫자를 뽑아 낸다고 보시면 될 거 같아요.


로또번호 생성기 소개

로또 번호는 아시다시피 1-45의 숫자 중 무작위로 6개를 뽑는 방식입니다. TV 추첨 방송에서 보면 커다란 원형 드럼 속에서 공들이 이리저리 섞이다가 하나씩 배출되죠. 저는 그 과정을 디지털 시뮬레이션으로 구현했습니다. 숫자가 뽑히는 방식도 단순하게 난수가 아닌데요. 

보통 인터넷에서 돌아다니는 번호 생성기는 단순히 `Math.random()` 같은 함수로 번호만 뽑습니다. 저도 이전에 만든 것은 이 방식을 사용했습니다. 하지만 이번에 만든 로또번호 생성기는 조금 더 신경 썼습니다. 

실제로 추첨 결과에서 나오는 나름의 패턴을 반영했는데요.

연속 번호가 너무 많지 않도록 제한을 하고,

홀짝 균형을 맞추는 스크립트가 들어가 있습니다. (너무 치우치지 않도록) 

전체 합계가 너무 낮거나 높지 않도록 범위를 설정하고, 

끝자리(일의 자리) 숫자가 과하게 겹치지 않도록 조절했습니다.

번호대(1~15, 16~30, 31~45)가 고르게 분포되도록 설계


그냥 난수랑 뭐가 달라 하실 수도 있는데요. 인공지능의 도움을 받아서 만든 이번 로직은 난수 발생기에서 나올 수 있는 극단값을 거르는  필터(휴리스틱)가 추가되어 있습니다.

즉, “아무렇게나 나온 6개”가 아니라, 최소한 그럴듯해 보이는 조합만 통과하는 거예요.

물론 아시겠지만 이렇게 한다고 해서 절대적으로 당첨확률이 올라가는 것은 절대아닙니다. 로또 자체가 무작위로 숫자를 뽑아내는 것이기 때문에 이걸 예측해내는 것은 불가능하거든요.


어떻게 사용할까?




버튼을 누르면, 드럼 속 공들이 이리저리 부딪히며 섞이는 모습이 애니메이션으로 재생됩니다. 그리고 잠시 후, 공들이 “툭툭툭” 나타납니다. 함께 5세트의 번호가 순차적으로 등장하구요.. 각 번호는 색깔이 달라져서, 실제 로또 볼처럼 시각적으로 구분되도록 했습니다.





이렇게 생성된 번호를 그대로 복사하거나, 카톡 같은 메신저로 바로 공유할 수 있습니다.  심심풀이로 실제 로또번호와 맞춰본다거나 내기를 하면 ‘게임 같은 재미’와  나름 ‘실용적인 기능’을 동시에 얻을 수도 있지 않을까요?


마치며,

통계적으로 로또 추첨 결과를 보면, 극단적으로 한쪽에만 몰리는 경우보다는 세 구간이 섞여 나오는 경우가 훨씬 많습니다.

•그래서 “그럴듯하게 보이는 번호”를 뽑고 싶다면 분포 제약을 걸어두는 게 좋아요.

• 물론 당첨 확률을 높여주는 건 전혀 아니고, 어디까지나 “보기 좋은” 번호 세트를 만드는 데 목적이 있습니다.


어쩌면 또 모르죠. 어차피 우연인 로또 번호와 우연히 골라진 이 시뮬레이터가 딱 맞아 떨어지는 행운(?)이 생길 수도. 얼마전 걸으면 로또번호를 주고 매주 추첨을 해주는 앱에서 3등을 했는데 그것도 어차피 무작위로 선정된 숫자하나가 맞았을 뿐이니까요.


언제나 행운이 함께 하기를 기원합니다.


고맙습니다.