보드 게임의 주사위를 잃어버렸거나 TRPG 세션 중에 갑자기 d20이 필요하신가요? 이 무료 온라인 주사위 생성기는 당장 수중에 없는 모든 주사위를 대신할 수 있습니다. “주사위” 필드에 굴리려는 개수를 1에서 20 사이로 설정하고, “면” 필드에 각 주사위의 면 수를 지정한 다음 “결과 생성”을 누르세요. 페이지를 열면 일반적인 6면체 주사위 두 개가 설정되어 있어 단 한 번의 클릭만으로 첫 번째 결과를 얻을 수 있습니다. 각 주사위의 눈은 개별적으로 표시되고 전체 롤의 총합이 바로 아래에 나타나므로 3d6을 굴린 후 더 이상 암산할 필요가 없습니다.
각 롤은 Math.random()과 같은 의사 난수 JavaScript 함수 대신 시스템 자체의 난수 소스에서 암호학적으로 강력한 난수 값을 얻는 브라우저의 Web Crypto API(crypto.getRandomValues)를 통해 실행됩니다. 원시 32비트 값을 면 수로 변환하는 과정이야말로 가상 주사위에서 소리 없이 오류가 발생하기 쉬운 부분입니다. 이 값을 면 수로 나누고 그 나머지(모듈로)를 취하는 방법은 가장 단순하지만 편향된 접근 방식입니다. 2^32가 면 수로 정확히 나누어떨어지지 않으면 작은 숫자의 면이 다른 면보다 약간 더 자주 나오게 되기 때문입니다. 이러한 결함을 modulo bias라고 하며, 이는 단순한 이론이 아니라 실제로 측정 가능한 수치입니다. 대신 이 도구는 면 수의 가장 큰 정확한 배수를 초과하는 값을 버리고 난수를 다시 뽑습니다. 이 기술을 rejection sampling이라고 합니다. 추가적인 추출이 몇 번 필요하지만, 근사치가 아닌 정확한 확률을 보장합니다. 서버로 전송되는 데이터가 없고 로그에 기록되는 내용도 없으며, 일단 페이지가 로드되면 인터넷 연결이 끊기더라도 주사위 굴리기는 계속 작동합니다.
두 개의 필드가 모든 역할을 수행하며, 게임에서 이미 사용하고 있는 주사위 표기법과 직접적으로 일치합니다. “주사위”는 한 번에 굴리는 주사위의 개수를 의미하며 1에서 20까지 설정할 수 있습니다. “면”은 각 주사위가 갖는 면의 수를 의미하며 2에서 1000까지 설정할 수 있어 d2 동전 던지기, 전체 롤플레잉 세트(d4, d6, d8, d10, d12, d20), 백분위 d100, 그리고 그 밖의 게임에서 필요로 하는 모든 주사위에 충분합니다. NdM 형식으로 작성되는 모든 것은 바로 이 두 필드를 의미합니다. 2d6은 “주사위”를 2로, “면”을 6으로 설정한다는 뜻이고, 단일 d20은 “주사위”를 1로, “면”을 20으로 설정함을 의미합니다. 캐릭터 능력치를 위해 3d6을 굴리시나요? “주사위”를 3으로, “면”을 6으로 설정하고 “결과 생성”을 누르면 세 개의 결과가 합계와 함께 표시됩니다. 두 개의 스위치는 결과의 내용이 아닌 보이는 방식을 변경합니다. 기본적으로 켜져 있는 “애니메이션 3D 주사위”는 각 주사위에 대해 회전하다가 멈추는 큐브를 렌더링합니다. 이 스위치를 끄면 숫자가 단순한 목록 형태로 즉시 나타납니다. “무작위 색상”은 표준 빨간색 대신 각 주사위에 고유한 색상을 지정하며, 이는 “애니메이션 3D 주사위”가 켜져 있을 때만 작동합니다. 단순한 목록 형태에서는 색을 칠할 주사위 표면이 없기 때문입니다. 주사위 눈금은 6면체 주사위에만 그려집니다. 17면체 주사위에 대한 표준 눈금 배열은 존재하지 않기 때문에 다른 종류의 주사위는 굴려진 숫자가 해당 면에 직접 표시됩니다.
결과 하단에 있는 줄은 계산의 수고를 덜어줍니다. Σ는 롤에 포함된 각 주사위의 합계이며, 그 옆에는 롤에 걸린 시간과 결과가 로컬에서 생성되었다는 메모가 표시됩니다. “모두 복사” 버튼은 결과를 클립보드에 저장하고, “파일로 저장”은 텍스트 파일로 기록합니다. 두 버튼 모두 합계뿐만 아니라 각 면을 한 줄에 하나씩 기록하여 무엇이 나왔는지에 대한 기록이 무엇이 나왔는지에 대한 기록으로 남게 합니다. “기록” 기능은 가장 최근 10번의 주사위 롤을 브라우저에 바로 보관합니다. 그중 하나를 클릭하여 합계와 함께 화면에 복원할 수 있으며, 개별 항목을 복사하거나 삭제할 수 있고, 원할 때는 언제든지 전체 목록을 지울 수 있습니다. “지우기” 버튼은 결과 창을 비우지만 사용자의 설정은 그대로 유지합니다.
가상 주사위가 실제 주사위보다 더 나을까요? 공정성 측면에서는 그렇습니다. 그 이유는 물리적인 특성에 있습니다. 일반적인 주형 주사위에는 구멍을 뚫고 색을 칠한 눈금이 있는데, 구멍을 뚫을 때마다 재질이 약간씩 제거되므로 6개의 구멍이 있는 6의 면이 결과적으로 아주 미세하게 가장 가벼워지고, 그 반대편 면이 아주 미세하게 가장 무거워집니다. 카지노용 precision dice가 존재하는 이유가 바로 이것입니다. 이 주사위들의 눈금은 평평한 표면과 동일한 밀도의 재질로 채워져 있고, 모서리가 둥글지 않고 직각으로 절단되어 있으며, 밀리미터 단위보다 정밀하게 가공되었지만, 그럼에도 불구하고 몇 시간 플레이한 후에는 게임에서 폐기됩니다. 보드 게임 상자에 들어 있는 주사위에는 이러한 특성이 전혀 없으며, 사용 시간이 지남에 따라 더욱 불규칙해집니다. 깨진 모서리, 오랫동안 손 안에서 흔들리며 둥글어진 가장자리, 테이블 대신 담요 위에서 굴려진 주사위는 결코 무작위가 아닙니다. 가상 주사위에는 결함이 발생할 기하학적 구조가 없고, 마모되지 않으며, 던지는 기술에 대해 논쟁할 여지가 없습니다. 그리고 만 번째 롤에서도 첫 번째 롤과 완벽하게 동일하게 작동합니다. 가상 주사위가 할 수 없는 것은 한 손에 편안하게 잡히는 것뿐입니다. 솔직한 결론은 이 생성기가 공정성에서는 이기지만 의식적인 감성에서는 진다는 것입니다.
공정한 주사위와 공정한 합계는 다릅니다. 단일 주사위의 각 면이 나올 확률은 동일하지만, 주사위를 더하기 시작하면 합계는 이러한 동등성을 잃게 되며, 이는 종종 사람들을 놀라게 합니다. 6면체 주사위 2개를 굴릴 때 동일한 확률의 조합은 36가지입니다. 그중 정확히 6가지 조합이 합계 7을 만드는 반면, 합계 2를 만드는 조합은 단 1가지, 합계 12를 만드는 조합도 단 1가지입니다. 따라서 완전히 공정한 주사위를 사용하더라도 7은 12보다 6배 더 자주 나타납니다. 세 번째 주사위를 추가하면 이 패턴은 더 좁아져 3d6의 결과가 중간 값 주변에 집중되며, 게임 디자이너가 결과값이 극단적이기보다 평균적이어야 할 때 3d6을 사용하는 이유도 이 때문입니다. 6면체 주사위 하나의 평균은 정확히 3.5이므로 2d6의 평균은 7이고 3d6의 평균은 10.5이며, 테이블 게임에서는 개별 확률보다 이러한 산술이 일반적으로 더 유용합니다. 이것은 결함이나 편향이 아닙니다. 단순히 주사위를 더하는 방식이 그렇게 작동할 뿐이며, 그렇기 때문에 두 가지가 거의 동일한 범위를 다루더라도 게임에서는 하나의 d12 대신 2d6을 요구하는 것입니다.
주사위에는 기억력이 없습니다. 숫자 6이 연속으로 네 번 나왔다고 해서 다섯 번째에 6이 나올 확률이 낮아지는 것은 아니며, 저녁 내내 1이 한 번도 안 나온 주사위가 그 때문에 1을 얻을 자격이 생긴 것도 아니며, 어떤 면도 결코 “나올 차례”가 되지 않습니다. 모든 롤은 이전 롤과 완전히 독립적이며, 주사위는 1분 전에 무슨 숫자가 나왔는지 알지 못합니다. 이와 반대로 생각하는 직관을 gambler's fallacy(도박사의 오류)라고 부르며, 우리가 주사위 결과를 직접 꾸며내는 데 매우 서투른 이유도 바로 이 직관 때문입니다. 그럴듯한 롤의 연속을 작성해보라고 하면 우리는 반복을 피하고 큰 숫자와 작은 숫자를 번갈아 배치하며, 실제 무작위성보다 훨씬 균등하게 숫자를 분산시킵니다. 이와 대조적으로 실제 무작위성은 뭉침 현상, 긴 연속성, 그리고 긴 공백을 만들어냅니다. 의심스러울 정도로 깔끔해 보이는 연속적인 숫자는 사실 사람의 지문과도 같습니다.
왜 이 주사위 생성기를 선택해야 할까요?
- 브라우저 내장 주사위 굴리기: 주사위는 사용자의 기기에서 굴려지며 어디로도 전송되지 않습니다.
- Web Crypto API 무작위성: Math.random()을 사용하지 않는 암호학적으로 안전한 난수 생성
- modulo bias 방지: rejection sampling 기술을 통해 모든 면의 확률을 완벽하게 동일하게 유지
- 게임에서 요구하는 모든 주사위 지원: 한 번에 1개에서 20개의 주사위, d2부터 d1000까지 가능
- 자동 계산되는 합계: Σ가 전체 주사위의 총합을 계산해주므로 3d6의 암산이 필요 없음
- 애니메이션 3D 주사위 제공 및 애니메이션 비활성화 시 단순한 숫자 목록으로 즉시 결과 확인 가능
- 여러 개의 주사위를 한눈에 쉽게 구별할 수 있도록 주사위별 개별 색상 지원
- “기록” 및 “파일로 저장” 기능: 나중에 증명해야 할지도 모르는 주사위 굴림 기록 보관 가능
- 무제한 및 완전 무료: 가입이나 사용 제한이 없으며 저희 서버에 저장되는 데이터가 없음
주사위는 누구도 선택하지 않은 숫자가 게임에 필요할 때마다 항상 등장합니다. 테이블탑 롤플레잉 게임 플레이어는 d20으로 공격 판정을 하고 캐릭터 능력치에 3d6을, 백분위 판정에 d100을 굴리며, 주사위 주머니를 절반이나 잃어버린 그룹이라도 그대로 게임을 계속할 수 있습니다. 윷놀이나 식탁 위에 펼쳐놓은 보드 게임도 주사위를 잃어버렸을 때 방법은 똑같습니다. “면”을 6으로, “주사위”를 2로 설정하고 계속 플레이하세요. 원격으로 플레이하는 그룹은 화면 공유 기능을 통해 다 같이 동일한 주사위 결과를 볼 수 있습니다. 초등학교 5학년 교실에서는 교사가 2d6을 60번 굴리고 총합을 계산한 다음 칠판에 패턴이 스스로 그려지게 하는 고전적인 확률론 수업을 진행할 수 있습니다. 게임 디자이너는 규칙이 출판되기 전에 실제로 보이는 것만큼이나 예측 불가능한지 확인해 볼 수 있습니다. 그리고 수많은 주사위 롤이 단순히 누가 먼저 게임을 할지, 누가 커피를 살지, 또는 두 가지 계획 중 어느 쪽이 이길지 외에는 아무것도 정하지 않습니다. 인류가 수천 년 동안 주사위를 통해 해결해 온 것처럼 운에 맡기는 결정입니다.
이 도구에는 사용자가 알아두어야 할 몇 가지 솔직한 제한 사항이 있습니다. 한 번의 롤에는 한 가지 종류의 주사위만 사용됩니다. “면” 필드의 값은 해당 롤에 있는 모든 주사위에 적용되므로, d20과 d6을 함께 굴리려면 한 번이 아닌 두 번의 별도 롤이 필요합니다. 또한 능력치 보정이나 어드밴티지/디스어드밴티지, 익스플로딩 주사위가 없으며, 주사위 표기법을 입력할 수 있는 텍스트 상자도 없습니다. 도구는 각 눈금과 합계만을 제공하며, 그 이후에 추가되는 규칙은 전적으로 사용자의 몫입니다. Σ는 롤에 포함된 모든 주사위의 합을 계산하지만, “모두 복사”와 “파일로 저장” 버튼은 합계가 아닌 개별 면을 출력합니다. 애니메이션은 장식에 불과하기 때문에 면의 개수와 관계없이 항상 6면체 큐브로 렌더링되며, 멈췄을 때 나타나는 눈금은 생성기가 이미 계산한 롤의 결과입니다. 롤은 사용자의 기기에서 로컬로 실행되므로 원격 플레이 중에는 한 사람이 굴리고 화면을 공유하게 됩니다. 이 도구는 제3자가 인증할 수 있는 롤이 아니라 본인이 설명할 수 있는 롤을 생성합니다. 그리고 당연하게도 암호학적으로 공정한 주사위는 단지 공정한 주사위일 뿐입니다. 어떠한 복권이나 카지노 추첨과도 무관하며 어느 누구에게도 유리한 이점을 제공하지 않습니다. 이러한 제한 사항 내에서, 어떤 주사위의 모든 면이 매 롤마다 완벽하게 동일한 확률을 갖는다는 보장은 확고합니다.