Skip to main content

Decision Wheel

Add custom options and spin a colorful wheel to make random decisions. Animated CSS wheel with smooth deceleration.

Geprüft von · Zuletzt geprüft

PizzaSushiTacosBurgers
Pizza
Sushi
Tacos
Burgers

So verwendest du das Entscheidungsrad

  1. Füge mindestens zwei Optionen in das Eingabefeld ein. Tippe eine Option und drücke Enter (oder klicke auf Hinzufügen), um sie dem Rad hinzuzufügen; wiederhole das bis zu zwanzig Optionen.
  2. Entferne jede Option mit der kleinen "x"-Schaltfläche auf ihrem Tag in der Liste. Das Rad wird sofort neu gezeichnet, damit du das angepasste Abschnitts-Layout vor dem Drehen sehen kannst.
  3. Klicke auf Drehen. Das Rad dreht sich mit einer CSS-kubischen-Bezier-Verzögerungskurve, die das physikalische Drehen und Verlangsamen eines echten Rades nachahmt.
  4. Lies den Gewinner unten unter dem Rad. Die gewinnende Option wird algorithmisch zuerst gewählt; die Animation landet einfach auf ihr.
  5. Drehe erneut, um neu auszuwürfeln, oder bearbeite die Optionsliste zwischen den Drehungen für progressive Runden - jedes Mal einen Finalisten ausschalten.

Was dieses Werkzeug macht und wie es funktioniert

Im Hintergrund ist das Rad keine physikalische Simulation. Wenn du auf Drehen klickst, ruft die Komponente zuerst Math.random() auf, multipliziert mit der Anzahl der Optionen und rundet ab, um einen Index zu wählen - das ist der Gewinner. Die Animation berechnet dann den Zielrotationswinkel, der den gewinnenden Abschnitt unter dem Indikator platziert, und wendet ihn über eine CSS-transform: rotate(N deg)-Transition mit drei bis vier Sekunden und einer ease-out-Kurve auf das Rad an. Die Kreisabschnitt-Geometrie verwendet conic-gradient() - eine CSS-Funktion, die mit CSS Images Level 4 um 2018 eingeführt wurde - die sauber gefärbte Sektoren ohne SVG oder Canvas-Zeichnung erzeugt. Textbeschriftungen werden mit einer Absolut-Rotation pro Beschriftung und einer Gegen-Rotation positioniert, damit die Wörter unabhängig davon, wo sich ihr Abschnitt auf dem Kreis befindet, aufrecht bleiben.

Da der Gewinner vor der Animation und nicht während ihr gewählt wird, hat jede Option genau gleiche Wahrscheinlichkeit - Math.random() ist gleichmäßig verteilt, und die Radvisualisierung ist dekorativ. Die Animationslänge, Easing-Kurve und der endgültige Landungswinkel sind alle so gewählt, dass das Ergebnis natürlich wirkt; sie haben keinen Einfluss auf die Fairness.

Wann du das Entscheidungsrad verwenden würdest

  • Aufbrechen eines Vierwegegleichstands beim Mittagessen des Teams, wenn niemand derjenige sein möchte, der auswählt.
  • Zufällige Auswahl, wer bei einem Standup, Hackathon-Demo oder Klassenaktivität als Erster präsentiert.
  • Auswählen, welches Feature in diesem Sprint aus einer Kurzliste implementiert werden soll, bei der das Team wirklich gleichgültig zwischen Kandidaten ist.
  • Auswählen einer Wohltätigkeitsorganisation zum Spenden, eines Films zum Ansehen oder eines Rezepts zum Kochen, wenn Entscheidungsmüdigkeit eingetreten ist.
  • Durchführen von Party- oder Geburtstagsspielen, bei denen ein randomisierter Picker das Ziehen von Namen aus einem Hut ersetzt.
  • Kindern Wahrscheinlichkeit beibringen - das Rad ist eine anschauliche visuelle Demonstration von "jede Option ist gleich wahrscheinlich", wenn die Abschnittsgrößen gleich sind.

Häufige Fallstricke und Randfälle

Der häufigste Fehler ist die Verwendung des Rades für eine Entscheidung, die wirklich wichtig ist. Zufälligkeit ist ein schrecklicher Ersatz für Analyse, wenn die Optionen unterschiedliche erwartete Ergebnisse haben - ein Team, das dreht für "risikoreiche oder sichere Funktion ausliefern", gibt die Verantwortung ab statt Urteilsvermögen auszuüben. Das Rad ist für Fälle, in denen jede Option akzeptabel ist und der Picker einfach weitermachen möchte. Ein zweites Problem: Bei vielen Optionen und langen Textbeschriftungen werden Abschnittsbeschriftungen beengt und schwer zu lesen. Das Werkzeug begrenzt den Optionstext auf dreißig Zeichen und die Optionsanzahl auf zwanzig genau aus diesem Grund. Math.random() ist nicht kryptografisch sicher - es ist ein Pseudozufallszahlengenerator, der aus Browser-Entropie initialisiert wird und für den Gelegenheitsgebrauch geeignet ist, aber du würdest ihn nicht für eine Lotterie mit Geld verwenden. Schließlich können mehrere Personen, die dasselbe Rad beobachten, versehentlich Ergebnisse manipulieren, wenn jemand ein leichtes Muster bemerkt, wie sich Abschnitte visuell nach mehreren Drehungen gruppieren; die Mathematik ist wirklich gleichmäßig, aber Menschen sind musterfindende Maschinen.

Zufälligkeit und Entscheidungsfindung

Die Verwendung von Zufall zur Entscheidung zwischen akzeptablen Optionen hat eine lange Geschichte: Römische Sortition wählte Magistrate durch Los, das Isländische Althing verteilte Redezeiten zufällig, und mittelalterliche italienische Städte zogen Los zur Streitbeilegung. Die psychologische Literatur zur "Entscheidungsmüdigkeit" (popularisiert von Roy Baumeister und John Tierney in ihrem 2011er Buch Willpower) unterstützt den Instinkt, dass die Randomisierung trivialer Entscheidungen kognitive Bandbreite spart - obwohl die ursprüngliche Ego-Depletion-Forschung teilweise repliziert und teilweise nicht repliziert wurde, also behandle die Theorie als hinweisend. Das conic-gradient() hinter dem Rad ist eine neuere Ergänzung; früher erforderte derselbe Effekt SVG-Pfade oder Canvas-Tortendiagramme. Math.random() verwendet einen PRNG (xorshift128+ in V8), der aus System-Entropie initialisiert wird; deterministisch bezüglich des Seeds, aber in der Praxis unvorhersehbar.

Vergleich mit Alternativen

Ein physischer Würfel oder Münzwurf ist ehrlich und schnell, wenn du nur wenige Optionen hast. Picker Wheel und Spin-the-Wheel-Seiten bieten reichhaltigere Funktionen: Räder zur Wiederverwendung speichern, ein Rad über URL teilen, Gewinner-nach-dem-Drehen-entfernen-Modus für Round-Robin-Auswahl, benutzerdefinierte Farben pro Abschnitt, Soundeffekte. Random.org bietet kryptografisch geprüfte Zufälligkeit, wenn du sie für Einsätze wirklich brauchst. Ein schneller Slack-Bot (/shuffle oder ein benutzerdefinierter Slash-Befehl) lässt ein Team dieselbe Entscheidung treffen, ohne dass jemand seinen Bildschirm teilt. Gegenüber diesen gewinnt diese Seite mit null Reibung und null Kontoanforderung - Tab öffnen, Optionen eintippen, drehen. Sie verliert, wenn du ein Rad über Sitzungen hinweg wiederverwenden, einen Kein-Wiederholungs-Entwurf durchführen oder das Ergebnis-URL mit einem Kollegen teilen möchtest, der die Drehung nicht beobachtet hat. Für hochriskante Zufallsauswahl verwende eine Plattform mit Prüfprotokollen; für gelegentliche Teamentscheidungen ist das perfekt.

Häufig gestellte Fragen

Ist das Rad wirklich zufällig, oder entscheidet die Animation?

Der Gewinner wird zuerst durch Math.random() bestimmt und die Animation wird rückwärts berechnet, um auf diesem Abschnitt zu landen. Die sichtbare Rotation ist reine Dekoration - die Mathematik ist fair, unabhängig davon, wie das Rad scheinbar langsamer wird. Jede Option hat genau eine Wahrscheinlichkeit von 1/N. Über genug Drehungen kommt jede Option ungefähr gleich oft vor, mit der Varianz, die man von fairen Münzwürfen erwarten würde.

Warum Math.random() statt einer kryptografischen Zufallsquelle?

Math.random() ist ein PRNG, der aus Browser-Entropie initialisiert wird, in V8 als xorshift128+ implementiert und anderswo mit ähnlichen Algorithmen. Er ist deterministisch bezüglich seines Seeds, aber in der Praxis unvorhersehbar - mehr als gut genug für gelegentliche Entscheidungsfindung. Eine kryptografisch sichere Quelle (crypto.getRandomValues) ist überdimensioniert für "Pizza oder Tacos". Für geprüfte Einsätze - Preisziehungen, Lotterien - verwende Random.org oder einen ordnungsgemäß geprüften Zufallszahlengenerator.

Was passiert, wenn ich dieselbe Option zweimal hinzufüge?

Duplikate werden als separate Einträge behandelt und erhalten jeweils ihren eigenen Abschnitt. Wenn du "Pizza" dreimal unter neun Optionen hinzufügst, gewinnt Pizza mit 3/9 Wahrscheinlichkeit statt 1/9. Das ist eine nützliche Möglichkeit, ein Rad zu gewichten - wenn eine Option doppelt so wahrscheinlich sein soll, füge sie zweimal hinzu. Das Werkzeug dedupliziert nicht automatisch, weil das diese absichtliche Verwendung verhindern würde.

Gibt es eine Begrenzung der Anzahl von Optionen?

Maximal zwanzig Optionen, jede begrenzt auf dreißig Zeichen. Die Beschränkungen sind Lesbarkeitsgrenzen, nicht technische. Jenseits von zwanzig Abschnitten ist der Text bei normalem Zoom zu klein zum Lesen, und jenseits von dreißig Zeichen brechen Beschriftungen unschön um. Wenn du mehr Optionen hast, möchtest du wahrscheinlich eher einen Listen-und- Mischen-Ansatz als ein Rad.

Speichert das Werkzeug meine Optionen zwischen Besuchen?

Nein. Die Optionsliste lebt im Preact-Komponentenzustand und wird beim Schließen oder Neuladen des Tabs verworfen. Die meisten Verwendungen des Entscheidungsrads sind einmalig und es gibt kein Konzept einer dauerhaften Liste. Für wiederverwendbare Räder bieten Picker Wheel oder Wheel of Names Speicher- und Teilfunktionen. Um das erneute Eintippen einer häufigen Liste zu vermeiden, hilft ein Text-Expander oder ein gespeicherter Zwischenablage-Ausschnitt.

Kann ich einen Gewinner entfernen, damit er nicht erneut ausgewählt werden kann?

Das Rad entfernt den Gewinner nicht automatisch, aber du kannst nach jeder Drehung auf das "x" der gewinnenden Option klicken, um sie auszuschalten. Das ist die manuelle Version des "Eliminationsmodus" oder "Kein- Wiederholungs-Modus" in anderen Werkzeugen. Für lange Round-Robin- Sequenzen (Präsentationsreihenfolge für fünfzehn Personen) sind dedizierte Seiten mit automatischer Elimination besser geeignet.

Funktioniert das Rad auf Mobilgeräten und Tablets?

Ja. Das Rad rendert als responsives CSS, die Eingaben sind Standard-HTML- Formularelemente und die Drehung ist eine CSS-Transformation, die also auf mobilen GPUs ohne Ruckeln läuft. Auf sehr kleinen Telefonen stapelt sich das Layout vertikal und Beschriftungen können bei vielen Optionen schwer zu lesen sein - in diesem Fall weniger Optionen auf Mobilgeräten verwenden oder hineinzoomen. Touch-Ereignisse zum Hinzufügen und Entfernen funktionieren identisch zu Mausklicks.

Ist die Animation einstellbar?

Nicht über die Benutzeroberfläche. Die Drehdauer ist auf drei bis vier Sekunden mit einer ease-out-kubischen-Bezier-Kurve festgelegt, die physikalische Verzögerung annähert. Einige Benutzer fragen nach einem "sofortigen" Modus für Massenziehungen, aber die Animation ist der ganze Punkt - sie erzeugt die dramatische Pause, die "das Rad hat gewählt" befriedigend statt willkürlich wirken lässt. Für kopflose Ziehungen ist ein Mischen-und-Auswählen-Werkzeug oder ein Slack-Befehl besser geeignet.

Wird meine Optionsliste irgendwo gesendet?

Nein. Das Optionen-Array, das Ergebnis, der Drehzustand - alles lebt im Komponentenspeicher. Es gibt keinen fetch-Aufruf, kein Analytics-Ereignis mit Optionstext, keinen Schreibzugriff auf den Speicher. Du kannst vertraulich klingende Optionen eingeben (Kandidatennamen, Gehaltsbänder, interne Projektcodes), ohne dir Sorgen zu machen, dass sie die Seite verlassen.

Sollte ich wichtige Entscheidungen einem Zufallsrad überlassen?

Nein. Ein Rad ist nützlich, wenn Optionen nahezu gleichwertig sind und du aufhören möchtest zu diskutieren - "drei gleich gute Restaurants" oder "wer zuerst demonstriert". Es ist ein schlechtes Werkzeug, wenn die Optionen im erwarteten Ergebnis abweichen, denn Zufälligkeit enthält keine Informationen, die eine gute Wahl von einer schlechten unterscheiden würden. Der Fall der Entscheidungsmüdigkeit für triviale Entscheidungen ist begründet; ihn auf ernsthafte Entscheidungen auszuweiten ist eine Fehlinterpretation.

Mehr Fun & Utility