Gewinner-Ermittlung

Die Mathematik fairer Gewinnspiel-Ziehungen

Überblick

Wie Gewinner fair ausgewählt werden

Swisserways verwendet ein gewichtetes Lotterie-System zur Gewinner-Auswahl. Deine Gewinnchance ist direkt proportional zur Anzahl der Teilnahmen, die du durch abgeschlossene Aufgaben und Boni gesammelt hast.

Mathematisch fair und nachprüfbar
Mehr Teilnahmen = höhere Gewinnwahrscheinlichkeit
Kryptographisch sichere Randomisierung
Algorithmus ist vollständig transparent

Teilnahmen-Berechnung

Wie deine Gesamtteilnahmen berechnet werden

Deine Gesamtteilnahmen für ein Gewinnspiel sind die Summe aller Task-Teilnahmen plus eventuelle Booster-Boni, die du verdient hast.

Die Formel

Deine Gesamtteilnahmen werden berechnet als:

Etotal=i=1nei+BE_{total} = \sum_{i=1}^{n} e_i + B
EtotalE_{total}=Deine Gesamtteilnahmen
eie_i=Teilnahmen von Aufgabe i
nn=Anzahl abgeschlossener Aufgaben
BB=Booster-Bonus (0 wenn nicht am Boosten)

Beispielrechnung

Betrachte ein Gewinnspiel mit 3 Aufgaben:

Aufgabe A (Discord beitreten): 1 Teilnahme

Aufgabe B (Twitter folgen): 2 Teilnahmen

Aufgabe C (YouTube abonnieren): 3 Teilnahmen

Booster-Bonus: +2 Teilnahmen

Wenn du alle Aufgaben abschließt und Server-Booster bist:

Gesamt = 1 + 2 + 3 + 2 = 8 Teilnahmen

Gewichtete Lotterie

Wie der Teilnahme-Pool funktioniert

Die Gewinner-Auswahl verwendet eine gewichtete Lotterie, bei der jede deiner Teilnahmen ein "Los" im Ziehungs-Pool darstellt.

Der Teilnahme-Pool

Stell dir einen Pool vor, der ein Los für jede Teilnahme von jedem Teilnehmer enthält. Wenn du 6 Teilnahmen hast und ein anderer Teilnehmer 3, enthält der Pool insgesamt 9 Lose - 6 mit deinem Namen und 3 mit seinem.

Die Gesamtgröße des Pools ist die Summe aller Teilnehmer-Teilnahmen:

Ptotal=j=1mEjP_{total} = \sum_{j=1}^{m} E_j

Visuelles Beispiel

Für ein Gewinnspiel mit 3 Teilnehmern:

A
Nutzer A: 6 Teilnahmen (6 Lose im Pool)
B
Nutzer B: 3 Teilnahmen (3 Lose im Pool)
C
Nutzer C: 1 Teilnahme (1 Los im Pool)

Pool insgesamt: 10 Lose

Gewinnwahrscheinlichkeit

Berechnung deiner Chancen

Deine Gewinnwahrscheinlichkeit ist einfach deine Teilnahmen geteilt durch die Gesamtgröße des Pools.

Wahrscheinlichkeitsformel

Deine Gewinnwahrscheinlichkeit wird berechnet als:

P(win)=EuserPtotal=Euserj=1mEjP(win) = \frac{E_{user}}{P_{total}} = \frac{E_{user}}{\sum_{j=1}^{m} E_j}

Wahrscheinlichkeitsbeispiel

Mit dem vorherigen Beispiel von 10 Gesamtteilnahmen:

Nutzer A: 6/10 60%
Nutzer B: 3/10 30%
Nutzer C: 1/10 10%

Hinweis

Diese Wahrscheinlichkeiten summieren sich immer zu 100%.

Mehrere Preise

Wenn ein Gewinnspiel mehrere Preise hat, werden Gewinner nacheinander gezogen. Jeder Nutzer kann nur einmal gewinnen, also wird er nach einem Gewinn für weitere Ziehungen aus dem Pool entfernt.

Vollständiges Beispiel

Ein durchgerechnetes Szenario

Szenario

Ein Gewinnspiel mit:

  • 2 zu vergebende Preise
  • Aufgaben im Wert von 1, 2 und 5 Teilnahmen
  • Booster-Bonus: +3 Teilnahmen

Teilnehmer

Alice

Schließt alle Aufgaben ab + ist Booster

1 + 2 + 5 + 3 = 11 Teilnahmen
Bob

Schließt alle Aufgaben ab, kein Booster

1 + 2 + 5 + 0 = 8 Teilnahmen
Charlie

Schließt nur die erste Aufgabe ab

1 + 0 + 0 + 0 = 1 Teilnahme

Die Ziehung

Pool insgesamt: 11 + 8 + 1 = 20 Teilnahmen

Erste Preisziehung

Alice:11/20 = 55%
Bob:8/20 = 40%
Charlie:1/20 = 5%

Zweite Preisziehung (angenommen Alice hat zuerst gewonnen)

Alice wird aus dem Pool entfernt:

Neuer Pool: 8 + 1 = 9 Teilnahmen

Bob:8/9 = 88.9%
Charlie:1/9 = 11.1%

Kryptographische Fairness

Wie wir eine wirklich zufällige Auswahl sicherstellen

Wir verwenden branchenübliche kryptographische Methoden, um sicherzustellen, dass die Gewinner-Auswahl vollständig zufällig und unvoreingenommen ist.

Fisher-Yates Shuffle

Der Teilnahme-Pool wird mit dem Fisher-Yates Algorithmus gemischt, der garantiert, dass jede mögliche Reihenfolge eine gleiche Wahrscheinlichkeit hat.

Web Crypto API

Anstatt Math.random() zu verwenden, nutzen wir die Web Crypto API (crypto.getRandomValues()), die kryptographisch sichere Zufallszahlen liefert. Dies macht die Auswahl unvorhersehbar und manipulationssicher.

Verifizierung

Der Algorithmus läuft serverseitig mit umfassendem Logging. Jede Gewinner-Auswahl wird mit Zeitstempeln, Teilnahme-Zahlen und Pool-Größen für die Nachprüfbarkeit aufgezeichnet.

Shuffle Visualisierung

Sieh zu, wie der Teilnahme-Pool Schritt für Schritt gemischt wird

Schritt 1 / 6
Fisher-Yates mischt von rechts nach links. Jede Position tauscht mit einer zufälligen Position links davon (oder sich selbst).
A1
A2
A3
B4
B5
C6
Ausgangszustand des Pools
Alice (3 Teilnahmen)
Bob (2 Teilnahmen)
Charlie (1 Teilnahme)

Gewinner-Validierung

Sicherstellung legitimer Gewinner

Bevor ein Gewinner bestätigt wird, überprüfen wir, ob er noch berechtigt ist. Dies nennt sich "Lazy Validation" - wir prüfen nur Gewinner, nicht alle Teilnahmen.

Discord-Mitgliedschaftsprüfung

Wenn das Gewinnspiel den Beitritt zu einem Discord-Server erforderte, verifizieren wir, dass der ausgewählte Gewinner noch Mitglied ist. Wenn er den Server verlassen hat, wird er disqualifiziert und ein neuer Gewinner wird gezogen.

Automatisches Reroll

Ungültige Gewinner werden automatisch aus dem Pool entfernt und ein neuer Gewinner wird gezogen. Dies wird fortgesetzt, bis alle Preis-Plätze mit gültigen Gewinnern gefüllt sind oder der Pool erschöpft ist.

Ein Gewinn pro Nutzer

Ein Gewinn pro Nutzer

Jeder Nutzer kann nur einmal pro Gewinnspiel gewinnen, unabhängig davon, wie viele Preise verfügbar sind. Dies stellt eine faire Verteilung über mehr Teilnehmer sicher.

Häufig gestellte Fragen