운명의 결정 도구

선택이 고민될 때 주사위와 동전을 굴려보세요!

버튼을 눌러 굴려보세요

무엇을 하는 도구인가

주사위 하나와 동전 하나를 브라우저에서 굴립니다. 점심 메뉴를 정하거나 보드게임 주사위를 잃어버렸을 때처럼 무언가 하나를 골라야 하는데 근거가 마땅치 않은 순간에 씁니다.

조작

  • 주사위 — 화면을 탭하거나 [주사위 굴리기]를 누르면 1부터 6까지 중 하나가 나옵니다.
  • 동전 — 앞면과 뒷면 중 하나가 나옵니다. 세워지는 경우는 없습니다.
  • 둘 다 Math.random()으로 정합니다. 결과를 저장하거나 서버로 보내지 않습니다.

어떻게 동작하나

결과와 연출은 따로 돌아갑니다. 굴리기를 누르면 90ms 간격으로 임시 눈금을 바꿔 보여 주고, 700ms 뒤에 최종값을 한 번 뽑아 확정합니다. 화면에서 구르는 동안 스쳐 가는 숫자는 연출일 뿐이며 결과와 무관합니다.

회전은 CSS 애니메이션이 맡습니다. 주사위는 0.6초 주기로 흔들리고, 동전은 0.7초 동안 rotateY가 0도에서 1800도까지 돕니다. 자바스크립트는 값만 정하고 움직임에는 관여하지 않습니다.

어디에 쓰나

결정을 미루고 있을 때 씁니다. 점심 메뉴를 고르거나, 순서를 정하거나, 보드게임 말을 옮길 때처럼 결과가 무엇이든 상관없지만 하나는 골라야 하는 상황입니다.

무작위에 맡기는 것의 쓸모는 공평함보다 더 이상 고민하지 않게 되는 것에 있습니다. 굴리기 전에 "이 눈이 나오면 이걸로 한다"를 정해 두면, 결과가 나온 순간 결정이 끝납니다. 굴려 놓고 마음에 안 들어 다시 굴리고 싶어진다면 사실 답은 이미 정해져 있던 셈입니다.

주사위 눈은 3×3 격자 위에 점을 배치해 그립니다. 1일 때 가운데 점이 붉게 표시되는 것은 실제 주사위의 관습을 따른 것입니다. 동전은 앞면과 뒷면 두 가지만 나오며 세워지는 경우는 없습니다.

이 도구가 하지 않는 것

주사위는 한 번에 하나만 굴립니다. 여러 개를 동시에 굴리거나, 6면이 아닌 주사위를 고르거나, 눈의 합을 자동으로 더해 주지 않습니다. 보드게임 규칙을 대신 처리하는 도구가 아닙니다.

결과를 남기지 않습니다. 방금 무엇이 나왔는지 화면에만 표시되고 기록이나 통계로 쌓이지 않으므로, 여러 번 굴린 결과를 나중에 되짚어 볼 수는 없습니다.

공정성을 증명하지 못합니다. Math.random()은 통계적 난수이지 암호학적으로 안전한 난수가 아닙니다. 추첨 결과에 이해관계가 걸려 있고 그 공정함을 남에게 입증해야 하는 자리에는 쓰지 마세요. 혼자 또는 아는 사람끼리 무언가를 정할 때 쓰는 도구입니다.

자주 묻는 질문

주사위 결과는 무작위인가요?

Math.floor(Math.random() * 6) + 1로 1부터 6까지 한 번 뽑습니다. 동전은 Math.random() < 0.5로 앞뒤를 가릅니다. 직전 결과가 다음 결과에 영향을 주지 않습니다. 다만 Math.random()은 통계적 난수이지 암호학적으로 안전한 난수는 아니므로, 추첨의 공정성을 증명해야 하는 용도에는 쓰지 마세요.

결과가 저장되나요?

아니요. 이 도구는 결과를 브라우저에도 서버에도 남기지 않습니다. 새로고침하면 기록 없이 처음 상태로 돌아갑니다.

모바일 화면에서 주사위가 잘려 보이지 않나요?

뷰포트 크기에 맞춰 반응형 캔버스와 3D 원근 래퍼의 크기가 동적으로 조절되므로 360px 너비의 작은 화면에서도 잘림 없이 표시됩니다.