Jeder Gewinner kommt aus einer gewichteten Zufallsauslosung. Jedes Los, das du verdienst, wird ein Platz im Pool, 5 Lose geben dir also 5 Plätze und 5 Chancen. Wenn das Giveaway endet, zieht unser Code zufällig Plätze mit crypto.randomInt, einem kryptografisch sicheren Generator ohne Seed, den irgendwer vorhersagen oder beeinflussen könnte. Den genauen Auslosungs-Code kannst du weiter oben auf dieser Seite lesen.
Offener Algorithmus
So lost ScopliDrop Gewinner aus,
und warum du es nachprüfen kannst
Unser offengelegter Algorithmus sorgt für eine komplett faire Auslosung. Mehr Lose = bessere Chancen, aber jede teilnehmende Person hat eine echte Chance zu gewinnen. Keine Manipulation, keine Bevorzugung, keine Ausnahmen.
Unser Transparenz-Versprechen
Vertrauen entsteht durch Transparenz. Jeder Schritt unserer Auslosung ist offen einsehbar. Keine Blackbox, keine versteckten Algorithmen, keine geheimen Parameter. Was du siehst, ist genau das, was passiert.
Der Algorithmus hinter der Auslosung
Jeder Gewinner wird von diesem Code ausgelost, direkt aus unserer Codebasis. Kryptografisch sicherer Zufall, keine versteckten Funktionen, keine geheimen Parameter.
WinnerSelection.ts
12// src/lib/services/WinnerSelection.ts3import { randomInt } from 'crypto';4import { GiveawayEntry } from '@/components/dashboard/giveaways/types';56/**7 * Select winners using weighted random selection.8 * @param entries All entries, each with a user_id and entries_count9 * @param winnerCount Number of winners to draw10 * @param hasFraudDetection Premium+ servers exclude fraud-flagged entries11 * @param cooldownExcludedUserIds Users on winner cooldown (recent wins)12 * @returns Array of selected winner user IDs13 */14export function selectWinners(15 entries: GiveawayEntry[],16 winnerCount: number,17 hasFraudDetection: boolean = true,18 cooldownExcludedUserIds: string[] = []19): string[] {20 if (!entries || entries.length === 0) {21 return [];22 }2324 // 1. Exclude fraud-flagged entries (premium+) and users on winner cooldown.25 // Flags are set only by automated fraud detection; a server admin can never26 // manually flag, unflag, or hand-pick who gets excluded from the draw.27 // Free servers keep every entry; fraud flags are ignored.28 const cooldownExcluded = new Set(cooldownExcludedUserIds);29 const eligibleEntries = (hasFraudDetection30 ? entries.filter(entry => entry.fraud_flag !== 'red')31 : entries32 ).filter(entry => !cooldownExcluded.has(entry.user_id));3334 if (eligibleEntries.length === 0) {35 return [];36 }3738 // 2. Build a weighted pool: one slot per entry earned.39 // 5 entries = 5 slots = 5 chances to win.40 const entryPool: string[] = [];41 for (const entry of eligibleEntries) {42 for (let i = 0; i < entry.entries_count; i++) {43 entryPool.push(entry.user_id);44 }45 }4647 // 3. Draw winners with cryptographically secure randomness.48 const winners: string[] = [];49 const winnerSet = new Set<string>();5051 // A user can only win once, so never draw more winners than unique people.52 const uniqueParticipants = new Set(eligibleEntries.map(entry => entry.user_id));53 const availableWinnerCount = Math.min(winnerCount, uniqueParticipants.size);5455 if (availableWinnerCount === 0 || entryPool.length === 0) {56 return [];57 }5859 while (winners.length < availableWinnerCount && entryPool.length > 0) {60 // crypto.randomInt is a CSPRNG: no seed, no bias, not manipulable.61 const randomIndex = randomInt(entryPool.length);62 const selectedUserId = entryPool[randomIndex];6364 // Only add first-time winners; duplicates are skipped.65 if (!winnerSet.has(selectedUserId)) {66 winners.push(selectedUserId);67 winnerSet.add(selectedUserId);68 }6970 // Remove the drawn slot via swap-and-pop (O(1)).71 entryPool[randomIndex] = entryPool[entryPool.length - 1];72 entryPool.pop();73 }7475 return winners;76}Die wichtigsten Schritte
Klicke auf einen Schritt, um seine Umsetzung im Code zu sehen
Zeile 3
Sicherer Zufall
Gewinner werden mit crypto.randomInt von Node ausgelost, einem kryptografisch sicheren Generator. Es gibt keinen Seed, den man vorhersagen könnte, und nichts zu manipulieren, auch nicht für uns.
Zeile 30
Betrugs- und Cooldown-Filter
Vor der Auslosung werden auf Servern mit Betrugserkennung markierte Teilnahmen entfernt, und wer im Gewinner-Cooldown ist, bleibt außen vor. Free-Server behalten jede Teilnahme.
Zeile 43
Gewichteter Pool
Hier beginnt die Fairness. Jede Person kommt einmal pro verdientem Los in den Pool, 5 Lose heißen also 5 Chancen. Proportional, nie garantiert.
Zeile 61
Die Auslosung
Ein zufälliger Index im gewichteten Pool bestimmt jeden Gewinner. Mehr Lose heißen einfach mehr Plätze, und jeder Platz hat exakt dieselbe Chance.
Zeile 65
Kein doppelter Gewinn
Ein Gewinner-Set stellt sicher, dass niemand zweimal gewinnt, und wir losen nie mehr Gewinner aus, als es teilnahmeberechtigte Personen gibt.
So funktioniert die Fairness
Sieh genau, wie unser Algorithmus jeder teilnehmenden Person eine faire Chance gibt, mit besseren Chancen für die, die mehr machen.
1
Lose sammeln
Mitglieder erledigen Aufgaben und verdienen Lose für ihre Aktionen
2
Gewichteter Pool
Jedes Los kommt je nach erledigten Aufgaben in den Auslosungs-Pool
3
Zufällige Auswahl
Kryptografisch sicherer Zufall wählt aus dem gewichteten Pool
4
Kein doppelter Gewinn
Stellt sicher, dass jede Person pro Giveaway nur einmal gewinnen kann
5
Gewinner bestätigen
Die ausgelosten Gewinner werden geprüft und verkündet
Konkretes Beispiel
Alice erledigt 3 Aufgaben, Bob 1 Aufgabe, Charlie 5 Aufgaben. Der Pool enthält insgesamt 9 Lose, mit proportionalen Gewinnchancen.
Alice
3 Lose verdient
33% Chance
Bob
1 Los verdient
11% Chance
Charlie
5 Lose verdient
56% Chance
Der Pool (9 Lose insgesamt)
Jeder Punkt steht für ein Los. Der Gewinner wird zufällig aus allen Losen gezogen.
Schluss mit manipulierten Giveaways
Ein Discord-Giveaway-Bot, der genau zeigt, wie Gewinner ausgelost werden
Das Problem
Die meisten Discord-Giveaway-Bots sind Blackboxen. Selbst wenn der Bot seriös ist und wirklich zufällig auslost, kann deine Community das nicht nachprüfen. Sie sieht den Algorithmus nicht, kann den Ablauf nicht kontrollieren und nicht belegen, dass die Gewinner nicht von Hand ausgesucht wurden.
Ohne Transparenz wirkt jedes Giveaway verdächtig. Deine Mitglieder fragen sich irgendwann, ob es überhaupt fair zugeht. Das Vertrauen stirbt, das Engagement sinkt.
Wir hatten genug davon, Communitys an verlorenem Vertrauen sterben zu sehen
Die Lösung
Nie wieder Engagement verlieren, weil jemand „manipuliertes Giveaway“ ruft. Wenn Mitglieder an der Fairness zweifeln, schick ihnen einfach den Link zu dieser Seite.
ScopliDrop garantiert, dass Server-Inhaber Giveaways weder bearbeiten noch Gewinner auswählen können. Punkt.
Es gibt eine Funktion „Giveaway manuell beenden“, aber die startet nur unseren Auslosungs-Algorithmus, sonst nichts. Server-Admins KÖNNEN KEINE Gewinner auswählen, auf keinem Weg. Das ist unser Versprechen.
Fragen zur Fairness
So stellen wir sicher, dass jedes Giveaway transparent, sicher und für alle Teilnehmenden fair ist.
Mach mit bei der fairen Revolution
Bereit für wirklich faire
Giveaways, ab heute?
Tausende Discord-Communitys sind schon auf transparente, nachprüfbare Giveaways umgestiegen. Starte kostenlos und beweise Fairness vom ersten Tag an.