Wie es funktioniert
Würfeltyp wählen (d4, d6, d8, d10, d12, d20 oder d100), Anzahl wählen, dann auf Würfeln tippen. Jeder Würfel wird unabhängig über `crypto.getRandomValues` mit Rejection-Sampling gerollt, garantiert gleichverteilt — eine 17 auf dem d20 ist also exakt so wahrscheinlich wie eine 1, in jedem Wurf. Das Widget zeigt jedes Einzelergebnis, damit Sie nachprüfen können (praktisch bei D&D, wenn der SL fragt „was hattest du genau auf dem d20?"), plus die Summe, die die meisten Spielsysteme tatsächlich verwenden. Bis zu 10 Würfel gleichzeitig deckt typische Fälle ab: 3W6 für Attribute, 4W6 niedrigsten streichen für die Charaktererschaffung, 2W20 Vorteil/Nachteil in 5e, 1W100 für Prozent-Würfe und so weiter.
Die Formel
N ist die Anzahl der Würfel (1–10 im Widget). S ist die Seitenzahl pro Würfel (eine von 4, 6, 8, 10, 12, 20, 100). Rejection Sampling ist nötig, weil 2^32 für die meisten Würfelgrößen nicht restlos durch S teilbar ist — ein direktes `byte mod S` würde manchen Ergebnissen eine etwas höhere Wahrscheinlichkeit geben. Bytes in der kleinen „Rest"-Zone oberhalb des größten Vielfachen von S werden verworfen, damit die Verteilung exakt gleich bleibt. Die Ablehnungswahrscheinlichkeit ist höchstens S/2^32 pro Versuch — die Wartezeit bleibt in der Praxis unsichtbar.
Beispielrechnung
- D&D-Attributswert: 3W6 würfeln → Ergebnisse [4, 6, 2] → Summe = 12.
- Vorteil in 5e: 2W20 → [11, 18] → höheren nehmen = 18.
- Prozent-Wurf: 1W100 → 73. Verwendet für „löst die Falle aus?" (Zielwert ≤ 80 = ja).
Häufig gestellte Fragen
Warum liefert der d10 1–10 und nicht 0–9?
Die meisten Spielsysteme behandeln den W10 als 1–10. Die 0–9-Lesart gilt nur für Prozent-Würfel — wenn man zwei W10 wirft, wobei einer die Zehner und einer die Einer ist, steht eine 0 auf beiden für 0, und 00 + 0 liest sich als 100. Wir nutzen die 1–10-Konvention, weil sie den Standardfall abdeckt (2W10 für Attribute, Schadenswürfe in W10-Systemen usw.). Für Prozent-Würfe gibt es einen dedizierten W100, der direkt 1–100 liefert, ohne dass man zwei Würfel kombinieren muss.
Kann ich verschiedene Würfel gleichzeitig werfen (z. B. 1W20 + 4W6)?
Nicht in einem Tap — das Widget würfelt einen Typ pro Wurf. Für 1W20 + 4W6 zuerst den W20 würfeln, Ergebnis notieren, Typ auf W6 und Anzahl auf 4 wechseln, dann erneut würfeln. Ein künftiger „Complex Roll"-Modus könnte Standard-Würfelnotation („1W20+4W6+3") in einem Schritt parsen, momentan hält die einfachere UI die häufigen Fälle (ein Würfeltyp, feste Anzahl, optionale Summe) auf einen Blick verständlich.
Wie unterscheidet sich „fair" von Math.random()?
Für die meisten Spielzwecke ist Math.random() fair genug — moderne Browser-Implementierungen sind gut. Wir nutzen crypto.getRandomValues aus zwei Gründen trotzdem: (1) es entfernt jede „ist der RNG verzerrt?"-Frage, und (2) es garantiert Unvorhersehbarkeit für Anwendungen, in denen das wichtig ist (Lottozahlen, Turnierauslosung, etc.). Die Kosten sind praktisch null — wenige Bytes pro Wurf.
Merkt sich das Widget Würfe zwischen Sitzungen?
Nein. Jeder Seitenaufruf startet ohne Würfe; ein Refresh oder Navigieren weg löscht das Ergebnis. Das ist Absicht — das Widget dient schnellen, wegwerfbaren Würfen. Für ein persistentes Log (Kampagnen-Tracker, statistische Auswertung) ist ein Papier-Notizbuch oder ein dediziertes VTT besser. Datenschutz-Bonus: nichts geht an einen Server, niemand sieht, was Sie gewürfelt haben.