테트리스는 왜 같은 조각이 연속으로 안 나올까 — 7-백, 히스토리 재추첨, 그리고 크리티컬의 PRD
테트리스를 하다 보면 이상한 걸 느낍니다. 같은 조각이 세 번 연속으로 나오는 일이 없고, I 조각이 영영 안 오는 일도 없습니다. 주사위라면 당연히 생길 일인데 게임에서는 안 생깁니다. 우연이 아닙니다. 게임은 일부러 덜 랜덤하게 만듭니다.
이 글은 조각 생성기 넷(진짜 랜덤, 7-백, NES식 재추첨, TGM식 재추첨)을 직접 짜서 1,000조각짜리 판을 2,000판씩 돌리고, 같은 조각이 바로 또 나오는 비율과 I 조각 가뭄을 잰 기록입니다. 마지막에는 같은 생각이 크리티컬 확률에 들어가면 어떻게 되는지도 잽니다.
38초 영상판 — 두 판이 쌓이는 장면은 조각 배치를 자동으로 고르는 코드이고, 조각 순서는 이 글의 생성기가 준 것 그대로입니다

왜 이런 게 생겼나
일곱 조각 중 하나를 매번 독립으로 뽑는 게 진짜 랜덤입니다. 짜기는 제일 쉽습니다. 그런데 이걸 그대로 쓰면 플레이어가 화를 냅니다. 같은 조각이 바로 또 나올 확률이 7분의 1이라 일곱 번에 한 번은 겹치고, 세 번 연속도 2%로 50번에 한 번은 생깁니다. 더 큰 문제는 가뭄입니다. I 조각이 한 번 나온 뒤 다음 I 까지 다른 조각이 30개 넘게 오는 구간이 1,000조각 한 판에 열 판 중 일곱 판꼴로 생깁니다. 우물을 파 놓고 기다리는 사람에게는 판이 그냥 올라갑니다.
랜덤은 공평한데 공평하게 느껴지지 않습니다. 사람은 짧은 구간에서 고른 분포를 기대합니다. 그래서 게임은 난수에 손을 댑니다. 연속을 막고, 가뭄을 막고, 대신 예측은 어렵게. 그 첫 방법이 최근 것을 피해 다시 뽑기였고, 지금 표준은 가방에 넣고 섞기입니다.
첫째, 진짜 랜덤은 뭉치고 마른다

랩의 진짜 랜덤은 1,000조각 판 2,000개, 조각 200만 개입니다. 같은 조각이 바로 또 나온 비율은 14.29% 로 정확히 7분의 1이고, 세 번 연속은 2.05%, 최장 연속은 7이었습니다. 같은 조각이 일곱 번 연속으로 나온 판이 실제로 있었다는 뜻입니다.
I 가뭄은 평균이 5.96 이라 평균적으로는 여섯 조각마다 I 가 옵니다. 문제는 분포의 꼬리입니다. 가뭄이 30을 넘는 비율은 0.96% 뿐인데, 한 판에 I 가 140번쯤 오니까 그 0.96% 가 한 번은 걸립니다. 한 판의 최장 가뭄 평균이 35개이고, 30 넘는 가뭄이 한 번이라도 생긴 판이 74.6% 입니다. 전체 최장 기록은 104개였습니다.
진짜 랜덤
- 같은 조각이 바로 또: 14.29% (=1/7). 세 번 연속 2.05%, 최장 연속 7.
- I 가뭄 평균 6, 최대 104. 한 판에 30+ 가뭄이 생기는 판 74.6%.
- 평균은 멀쩡하고 꼬리가 문제다.
둘째, 7-백 — 가방에 넣고 섞는다

가이드라인을 따르는 테트리스가 쓰는 생성기는 이름이 Random Generator이고, 흔히 7-백(7-bag)이라고 부릅니다. 일곱 조각을 전부 가방에 넣고 섞은 뒤 하나씩 꺼내고, 다 꺼내면 다시 채워 섞습니다. 코드로는 7개짜리 배열을 셔플하고 순서대로 소비 한 줄입니다. 순열은 7! = 5,040 가지입니다.
이 정의에서 두 가지가 바로 따라 나옵니다. 같은 조각이 연속으로 나오려면 앞 가방의 마지막과 뒤 가방의 첫 조각이 같아야 하니 최대 2연속이고, 세 번 연속은 불가능합니다. 확률은 가방 경계에서 7분의 1, 조각당으로는 49분의 1이라 2.04% 입니다. 랩 실측은 2.02% 였습니다. 가뭄은 앞 가방의 첫 장이 I 이고 뒤 가방의 마지막 장이 I 일 때 그 사이 다른 조각 12개가 최대입니다. 실측 최대도 12 였고, 7개 창마다 일곱 조각이 전부 들어 있는 비율은 당연히 100% 입니다. 진짜 랜덤은 0.58% 였습니다.
대가도 있습니다. 가방은 예측이 됩니다. 이번 가방에서 여섯 개가 나왔으면 다음 조각은 남은 하나입니다. 그래서 다음 조각 미리 보기와 합쳐지면 계획이 가능해지고, 이게 현대 테트리스가 퍼즐처럼 풀리는 이유이기도 합니다. 랜덤을 줄인 만큼 실력이 들어갈 자리가 생깁니다.
가방은 멀티플레이에서도 일을 합니다. 조각 순서가 시드 하나로 정해지는 결정론적 생성기라서, 두 사람에게 같은 시드를 주면 같은 순서가 나오고 운이 사라집니다. 지는 쪽이 "내 조각이 나빴다"고 말할 수 없게 되는 거죠. 같은 이유로 리플레이는 조각 순서를 저장할 필요 없이 시드와 입력만 저장하면 되고, 서버는 같은 생성기를 돌려 결과를 검증할 수 있습니다. 첫 가방에 일곱 조각이 전부 들어 있다는 보장은 "오프너"라고 부르는 정해진 초반 쌓기가 성립하는 근거이기도 합니다.
7-백
- 일곱 조각을 섞어 차례로. 다 꺼내면 다시 섞는다.
- 연속 최대 2 (2.04%, 가방 경계에서만), 세 번 연속 0. 가뭄 최대 12.
- 예측이 된다. 그게 단점이자 현대 테트리스의 재료다.
셋째, 가방 전에는 히스토리로 다시 뽑았다

가방이 표준이 되기 전에는 최근에 나온 조각을 피해 다시 뽑는 방법을 썼습니다. 옛 NES판 테트리스는 8면 주사위를 던져 직전 조각과 같거나 8이 나오면 7면 주사위를 한 번 더 던집니다. 재시도가 한 번뿐이라 연속을 완전히 막지는 못합니다. 랩에서 바로 또 나올 확률은 3.56% 로 진짜 랜덤의 4분의 1이지만, 최장 연속은 4가 나왔고 가뭄은 진짜 랜덤과 거의 같아서 30+ 가뭄이 생긴 판이 57.5% 입니다. 직전 하나만 피하는 방식은 연속에는 효과가 있고 가뭄에는 효과가 없습니다.
TGM 계열은 최근 4개를 기억하고, 뽑은 조각이 그 안에 있으면 최대 4번까지 다시 뽑습니다. 바로 또 나올 확률이 1.44% 로 가방보다도 낮고, 최장 가뭄은 40, 30+ 가뭄이 생긴 판은 1.1% 입니다. 히스토리가 길어지면 가뭄도 줄어듭니다. 다만 7개 창에 일곱 조각이 전부 들어 있는 비율은 16.9% 라 가방만큼 고르지는 않습니다. 가방은 연속과 가뭄을 정의로 없애고, 히스토리는 확률적으로 줄입니다.
히스토리 재추첨
- NES식(직전 1개, 1회): 바로 또 3.56%, 가뭄에는 효과 없음(30+ 판 57.5%).
- TGM식(최근 4개, 4회): 바로 또 1.44%, 가뭄 최대 40, 30+ 판 1.1%.
- 히스토리가 길수록 가방에 가까워진다.
넷째, 같은 생각이 크리티컬에도 들어간다

RPG 의 크리티컬도 진짜 랜덤이면 뭉칩니다. 25% 면 세 번 연속 크리티컬이 1.56%, 열 번 연속 실패가 5.63% 입니다. 20만 번 돌린 랩에서 세 번 연속이 2,282번, 열 번 연속 실패가 2,835번 나왔습니다.
그래서 어떤 게임은 실패할수록 확률을 올립니다. k번째 시도의 확률을 k·C 로 두고 성공하면 k 를 1 로 되돌립니다. 평균이 정확히 25% 가 되도록 C 를 이분법으로 풀면 0.08474 입니다. 첫 시도는 8.5%, 두 번째는 16.9%, 12번째에는 확정입니다. 같은 20만 번에서 평균은 25.08% 로 그대로인데, 세 번 연속 크리티컬은 325번으로 7분의 1이 됐고 열 번 연속 실패는 25번으로 113분의 1이 됐습니다. 최장 실패 연속은 37에서 11로 줄었습니다.
테트리스의 가방과 같은 이야기입니다. 평균은 건드리지 않고 연속만 없앱니다. 축캐 편에서 다룬 뽑기의 천장과 셔플백도 같은 계열입니다. 진짜 랜덤은 너무 랜덤해서, 게임은 일부러 덜 랜덤하게 만듭니다.
크리티컬 PRD
- k번째 확률 = k·C, 뜨면 k = 1. C 는 평균이 p 가 되도록 푼다(25% → 0.08474).
- 평균 그대로, 세 번 연속 ÷7, 열 번 연속 실패 ÷113.
- 첫 시도는 8.5% 라 첫 방 크리티컬은 오히려 드물어진다.
정리
진짜 랜덤은 평균이 맞아도 짧은 구간에서 뭉치고 마릅니다. 테트리스는 같은 조각이 바로 또 나오는 7분의 1과 열 판 중 일곱 판의 I 가뭄을 그대로 두지 않고, 일곱 조각을 가방에 넣고 섞어 차례로 꺼냅니다. 그러면 연속은 최대 2, 가뭄은 최대 12 가 정의로 보장됩니다. 그 전에는 최근 조각을 피해 다시 뽑는 히스토리 방식을 썼고, 히스토리가 길수록 가방에 가까워집니다. 크리티컬의 PRD 도 같은 생각입니다. 평균은 두고 연속만 없앱니다. 게임의 랜덤은 덜 랜덤한 랜덤입니다.
확인 못 한 것
- 가이드라인 생성기의 규칙은 위키에 공개된 것을 그대로 짰습니다. 특정 테트리스 제품이 가방 앞머리에 어떤 예외(첫 조각 제한 등)를 두는지는 제품마다 달라 다루지 않았습니다.
- NES식과 TGM식은 위키의 설명을 그대로 옮긴 모형입니다. TGM 계열 후속작의 35개 가방 같은 변형은 넣지 않았습니다.
- 대전 모드에서 두 사람에게 같은 시드를 주는 방식은 원리로만 적었습니다. 어느 제품이 실제로 그렇게 하는지는 이 글에서 확인하지 못했고, 위키에서도 문장을 찾지 못했습니다.
- 크리티컬에 PRD 를 쓰는 특정 게임의 이름과 상수는 이 글에서 인용하지 않았습니다. C 값은 평균 25% 라는 조건에서 직접 푼 것입니다.
- 화면의 자동 쌓기는 조각 배치를 고르는 휴리스틱(높이·구멍·울퉁불퉁·지운 줄)에 오른쪽 열은 I 를 위해 비운다 는 사람 습관을 더한 것이라, 실제 고수의 플레이와는 다릅니다. 조각 순서만이 이 글의 생성기가 준 값입니다.
참고 자료
- TetrisWiki, "Random Generator" — "The seven tetrominoes are shuffled and drawn from the bag one by one. … popularly known as 7-bag": https://tetris.wiki/Random_Generator
- Hard Drop Tetris Wiki, "Random Generator" — 7! = 5,040 순열, 가이드라인 게임에서 쓰인다는 설명: https://harddrop.com/wiki/Random_Generator
- TetrisWiki, "Tetris (NES)" — "The first roll generates a value 0-7 and will accept … any value other than the previous piece dealt or the dummy value of 7 … second roll that generates a value 0-6": https://tetris.wiki/Tetris_(NES,_Nintendo)
- TetrisWiki, "TGM randomizer" — "keeping a history of the most recent tetrominoes … the game will try 4 times to generate a tetromino that doesn't match any in the history": https://tetris.wiki/TGM_randomizer
이 글의 생성기 넷과 크리티컬 PRD 시뮬, 도판은 전부 직접 짠 것입니다(파이썬 랩). 참고 자료는 생성기의 규칙을 확인하는 데만 썼고, 어느 게임의 내부 값도 인용하거나 추정하지 않았습니다.
'게임개발뜯어보기' 카테고리의 다른 글
| 게임에서 벽은 어떻게 부술까 - 보로노이 파괴 (0) | 2026.09.10 |
|---|---|
| 쓰러지는 것도 애니메이션일까 - 래그돌과 관절 제약 (0) | 2026.09.09 |
| 게임 확률은 왜 표기와 달라질 수 있나 - 모듈러 편향과 거부 샘플링 (0) | 2026.09.07 |
| 오픈월드는 왜 로딩이 없나 - 청크 스트리밍과 히스테리시스 (0) | 2026.09.06 |
| 경로를 찾았으면 다음은 걷기입니다 - 내비메시와 퍼널 알고리즘 (0) | 2026.09.05 |