Online Γεννήτρια Τυχαίων Αριθμών

Acrafto Team Μαθηματικά
Ενημερώθηκε
Γρήγορες επιλογές
Όλα τρέχουν στον περιηγητή σας. Κανένας αριθμός δεν φεύγει ποτέ από τη συσκευή σας.

Πώς λειτουργεί η γεννήτρια τυχαίων αριθμών;

Η γεννήτρια σάς δίνει δύο πηγές τυχαιότητας, και εσείς επιλέγετε ποια ταιριάζει στη δουλειά σας.

Το ασφαλές τυχαίο αντλεί εντροπία από το λειτουργικό σας σύστημα μέσω του Web Crypto API (crypto.getRandomValues()). Είναι απρόβλεπτο και μη επαναλήψιμο — η σωστή επιλογή για μια πραγματική κλήρωση όπου κανείς δεν πρέπει να μπορεί να μαντέψει το αποτέλεσμα εκ των προτέρων.

Το seeded μετατρέπει οποιοδήποτε κείμενο πληκτρολογείτε σε αρχική κατάσταση για μια ντετερμινιστική γεννήτρια (xoshiro128**). Το ίδιο seed δίνει πάντα τους ίδιους αριθμούς, οπότε ο καθένας μπορεί να επαναλάβει την κλήρωσή σας και να επιβεβαιώσει ότι πήρατε αυτό που λέτε ότι πήρατε.

Και οι δύο λειτουργούν εξ ολοκλήρου στον περιηγητή σας. Κανένας αριθμός δεν φτάνει ποτέ σε διακομιστή.

Χωρίς σφάλμα modulo (modulo bias)

Οι περισσότερες απλές γεννήτριες αντιστοιχίζουν μια τυχαία τιμή 32 bit στο εύρος σας με value % range. Όταν το εύρος δεν διαιρεί ακριβώς το 2³², οι μικρότεροι αριθμοί εμφανίζονται ελαφρώς πιο συχνά από τους υπόλοιπους. Σε χιλιάδες κληρώσεις αυτό γίνεται μετρήσιμο.

Αυτή η γεννήτρια χρησιμοποιεί αντ’ αυτού rejection sampling: οι τιμές που θα έπεφταν στην άνιση «ουρά» απορρίπτονται και ξανακληρώνονται. Κάθε αριθμός στο εύρος σας έχει ακριβώς την ίδια πιθανότητα. Μπορείτε να το επαληθεύσετε μόνοι σας με το ενσωματωμένο τεστ ομοιομορφίας.

Τι μπορεί να κάνει η γεννήτρια

Εύρος

  • Ελάχιστο και μέγιστο — οποιοδήποτε ακέραιο ή δεκαδικό εύρος, συμπεριλαμβανομένων αρνητικών τιμών
  • Πόσοι αριθμοί — από 1 έως 1.000.000 σε μία κλήρωση
  • Χωρίς επανάληψη — κάθε αριθμός εμφανίζεται το πολύ μία φορά, όπως σε μια πραγματική κλήρωση
  • Ταξινόμηση — σειρά κλήρωσης, αύξουσα ή φθίνουσα· η ταξινόμηση δεν επηρεάζει ποτέ την τυχαιότητα
  • Βήμα — περιορίστε τα αποτελέσματα σε πολλαπλάσια μιας τιμής, ώστε να εμφανίζονται μόνο 0, 5, 10, 15
  • Εξαίρεση αριθμών — καταχωρίστε τιμές που δεν πρέπει ποτέ να κληρωθούν

Λειτουργία

  • Πηγή τυχαιότητας — ασφαλής (Web Crypto) ή seeded (επαναλήψιμη)
  • Seed — οποιοδήποτε κείμενο· το ίδιο seed αναπαράγει πάντα την ίδια κλήρωση
  • Κατανομή — ομοιόμορφη, κανονική (Gauss), εκθετική, Poisson, τριγωνική, διωνυμική
  • Βάρη — δώστε σε επιλεγμένους αριθμούς μεγαλύτερη πιθανότητα, γραμμένα ως number:weight
  • Σημειογραφία ζαριών3d6+2, d20, 2d20kh1 για advantage, 4d6dl1 για δημιουργία χαρακτηριστικών

Έξοδος

  • Διαχωριστικό — κόμμα, κενό, άνω τελεία, tab, νέα γραμμή ή ό,τι πληκτρολογήσετε
  • Αριθμητικό σύστημα — δεκαδικό, δυαδικό, οκταδικό, δεκαεξαδικό ή βάση 36
  • Συμπλήρωση με μηδενικά — μετατρέψτε το 7 σε 007 για αριθμούς εισιτηρίων ή ID
  • Πρόθεμα και επίθημα — τυλίξτε κάθε αριθμό σε σταθερό κείμενο
  • Πρότυπο — το {n} είναι ο αριθμός, το {i} η θέση του, οπότε user{n} γίνεται user42
  • Αντιγραφή ως — απλό κείμενο, CSV, JSON ή πίνακας Markdown

Στατιστικά

Κάθε κλήρωση συνοψίζεται ζωντανά: άθροισμα, μέση τιμή, διάμεσος, ελάχιστο, μέγιστο, τυπική απόκλιση, καθώς και πόσα αποτελέσματα είναι άρτια, περιττά ή πρώτοι αριθμοί. Ένα ιστόγραμμα δείχνει το σχήμα της κατανομής, και ένα τεστ χι-τετράγωνο σάς λέει αν τα αποτελέσματα ταιριάζουν πράγματι με ομοιόμορφη κατανομή.

Ιστορικό

Οι τελευταίες 50 κληρώσεις διατηρούνται στον περιηγητή σας, μαζί με τις ρυθμίσεις που τις παρήγαγαν — ένα κλικ επαναφέρει οποιαδήποτε από αυτές. Ρυθμίσεις που χρησιμοποιείτε συχνά μπορούν να αποθηκευτούν ως ονομασμένες προεπιλογές, και το σύνολο εξάγεται σε αρχείο JSON που μπορείτε να εισαγάγετε σε άλλη συσκευή. Τίποτα δεν αποθηκεύεται πουθενά αλλού εκτός από αυτόν τον περιηγητή.

Πληκτρολόγιο

Πατήστε Space ή R για νέα κλήρωση χωρίς να χρειαστεί να πιάσετε το ποντίκι.

Γρήγορες προεπιλογές

ΠροεπιλογήΕύροςΠλήθοςΧρήση
🎲 Ζάρι1–61Επιτραπέζια παιχνίδια, λήψη αποφάσεων
🪙 Νόμισμα0–11Κορώνα ή γράμματα
🎰 Λαχείο1–496Μοναδικοί, ταξινομημένοι αριθμοί, όπως σε πραγματική κλήρωση
💯 1–1001–1001Ποσοστά, A/B κατανομές
🔢 PIN0–94Τέσσερα ψηφία, επιτρέπονται επαναλήψεις

Επαναλήψιμες κληρώσεις

Η λειτουργία seeded υπάρχει για τις στιγμές που το «εμπιστευτείτε με, ήταν τυχαίο» δεν αρκεί.

Επιλέξτε ένα seed που όλοι μπορούν να συμφωνήσουν εκ των προτέρων — μια ημερομηνία, ένα hashtag, την τιμή κλεισίματος κάποιου δημόσιου δείκτη — και ανακοινώστε το πριν την κλήρωση. Ο καθένας μπορεί έπειτα να πληκτρολογήσει το ίδιο seed με τις ίδιες ρυθμίσεις και να πάρει το ίδιο ακριβώς αποτέλεσμα. Δεν έχετε αποδείξει ότι οι αριθμοί ήταν απρόβλεπτοι· έχετε αποδείξει ότι δεν ξανακληρώσατε μέχρι να σας αρέσει η απάντηση.

Έτσι κάνετε επίσης την τυχαιότητα επαναλήψιμη σε εργασίες που πρέπει να ελεγχθούν: ένα σχέδιο δειγματοληψίας που ένας συνάδελφος μπορεί να επαναλάβει, ένα σύνολο δεδομένων δοκιμών που παραμένει σταθερό σε μια σουίτα ελέγχων, μια σχολική άσκηση όπου κάθε μαθητής παίρνει τα ίδια «τυχαία» δεδομένα.

Επιλογή κατανομής

Η ομοιόμορφη δίνει σε κάθε αριθμό του εύρους την ίδια πιθανότητα. Είναι αυτό που συνήθως εννοούν οι άνθρωποι με τον όρο «τυχαίο», και είναι η προεπιλογή.

Οι υπόλοιπες συγκεντρώνουν τα αποτελέσματα γύρω από μια τιμή, κάτι που τείνουν να κάνουν τα πραγματικά μεγέθη:

  • Κανονική (Gauss) — ύψη, σφάλματα μέτρησης, βαθμολογίες τεστ. Ορίστε μέση τιμή και τυπική απόκλιση.
  • Εκθετική — χρόνοι αναμονής μεταξύ ανεξάρτητων γεγονότων.
  • Poisson — πλήθος γεγονότων σε καθορισμένο διάστημα: αφίξεις ανά ώρα, ελαττώματα ανά παρτίδα.
  • Τριγωνική — όταν γνωρίζετε το ελάχιστο, το μέγιστο και την πιο πιθανή τιμή, αλλά τίποτα άλλο. Συνηθισμένη σε εκτιμήσεις έργων.
  • Διωνυμική — επιτυχίες από σταθερό αριθμό δοκιμών με σταθερή πιθανότητα.

Κάθε κατανομή περιορίζεται στο εύρος που ορίζετε, ώστε μια μακριά ουρά Gauss να μην μπορεί να ξεφύγει από το ελάχιστο και το μέγιστό σας.

Πού χρησιμοποιούνται οι τυχαίοι αριθμοί

Παιχνίδια και ψυχαγωγία

  • Επιτραπέζια παιχνίδια — ρίψεις ζαριών, σειρά παικτών
  • Επιτραπέζια RPG4d6dl1 για χαρακτηριστικά, 2d20kh1 για advantage
  • Κληρώσεις δώρων — επιλογή νικητή, με seed ώστε οι συμμετέχοντες να μπορούν να το επαληθεύσουν
  • Κουίζ — τυχαία σειρά ερωτήσεων

Στατιστική και επιστήμη

  • Δειγματοληψία — άντληση δείγματος από έναν πληθυσμό χωρίς επανάληψη
  • Δοκιμές A/B — κατανομή συμμετεχόντων σε ομάδες
  • Προσομοίωση Monte Carlo — εκτίμηση πιθανότητας μέσω επανάληψης
  • Bootstrapping — επαναδειγματοληψία για εκτίμηση αβεβαιότητας

Ανάπτυξη λογισμικού

  • Δεδομένα δοκιμών — ένα εκατομμύριο τιμές, παραγόμενες στο παρασκήνιο ώστε η σελίδα να παραμένει αποκρίσιμη
  • Fixtures — seeded, ώστε ένα αποτυχημένο τεστ να αποτυγχάνει με τον ίδιο τρόπο δύο φορές
  • Τυχαία IDs — με συμπλήρωση, προθέματα ή πρότυπο
  • Δοκιμές φόρτου — αναγνωριστικά με πρότυπο, όπως user{n}@example.com

Πραγματικοί vs. ψευδοτυχαίοι αριθμοί

Math.random()crypto.getRandomValues()Seeded (xoshiro128**)
ΤύποςΨευδοτυχαίοΚρυπτογραφικά ασφαλέςΨευδοτυχαίο, ντετερμινιστικό
Πηγή εντροπίαςSeed της μηχανήςCSPRNG συστήματοςΤο δικό σας κείμενο seed
Προβλέψιμο;ΔυνητικάΌχιΝαι, εκ σχεδιασμού
Επαναλήψιμο;ΌχιΌχιΠάντα
Κατάλληλο για ασφάλειαΌχιΝαιΌχι
Κατάλληλο για στατιστικήΕξαρτάταιΝαιΝαι
Κατάλληλο για επαληθεύσιμες κληρώσειςΌχιΌχιΝαι

Το Math.random() δεν χρησιμοποιείται πουθενά σε αυτό το εργαλείο.

Κληρώσεις χωρίς επανάληψη

Με ενεργοποιημένη την επιλογή Χωρίς επανάληψη, κάθε αριθμός στο εύρος εμφανίζεται το πολύ μία φορά. Ιδανικό για:

  • Κληρώσεις δώρων — κανείς δεν μπορεί να κερδίσει δύο φορές
  • Μεταθέσεις — ανακάτεμα ενός συνόλου στοιχείων
  • Bingo — κλήρωση αριθμών που παραμένουν κληρωμένοι
  • Λαχείο — έξι διαφορετικοί αριθμοί από το 1 έως το 49

Η κλήρωση χρησιμοποιεί ένα μερικό Fisher–Yates shuffle, οπότε η ζήτηση 6 αριθμών από ένα εκατομμύριο είναι εξίσου γρήγορη με τη ζήτηση 6 από 49 — δεν επαναλαμβάνεται ποτέ ελπίζοντας να αποφύγει μια σύγκρουση. Αν ζητήσετε περισσότερους μοναδικούς αριθμούς από όσους μπορεί να προσφέρει το εύρος, η γεννήτρια σάς το επισημαίνει αντί να «κολλήσει».

Εξαγωγή αποτελεσμάτων

Αντιγράψτε τους αριθμούς ως απλό κείμενο με όποιο διαχωριστικό προτιμάτε, ως CSV για υπολογιστικό φύλλο, ως JSON για κώδικα, ή ως πίνακα Markdown για τεκμηρίωση. Πολύ μεγάλες κληρώσεις παραμένουν πλήρως στη μνήμη και αντιγράφονται πλήρως, ακόμη κι αν στην οθόνη εμφανίζονται μόνο οι πρώτες μερικές χιλιάδες.

Δημιουργία τυχαίων αριθμών στον δικό σας κώδικα

JavaScript / TypeScript

// Cryptographically secure integer in [min, max], without modulo bias.
// The naive `value % range` favours low numbers when range does not
// divide 2**32 evenly - so we reject values in the uneven tail.
function randomInt(min, max) {
  const range = max - min + 1;
  const limit = Math.floor(0x100000000 / range) * range;
  const arr = new Uint32Array(1);
  let value;
  do {
    crypto.getRandomValues(arr);
    value = arr[0];
  } while (value >= limit);
  return min + (value % range);
}

Python

import random
import secrets

# Cryptographically secure, no modulo bias
n = secrets.randbelow(max - min + 1) + min

# Reproducible: the same seed always gives the same sequence
rng = random.Random('my-seed')
n = rng.randint(min, max)

# Without repetition
sample = random.sample(range(min, max + 1), count)

PHP

// Cryptographically secure (PHP 7+), no modulo bias
$n = random_int($min, $max);

// Reproducible
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);

Συχνές ερωτήσεις (FAQ)

Είναι το αποτέλεσμα πραγματικά τυχαίο; Σε ασφαλή λειτουργία, ναι. Προέρχεται από το crypto.getRandomValues(), μια κρυπτογραφικά ασφαλή γεννήτρια που τροφοδοτείται από τη δεξαμενή εντροπίας του λειτουργικού σας συστήματος. Τα αποτελέσματα είναι ομοιόμορφα κατανεμημένα και απρόβλεπτα. Η λειτουργία seeded είναι σκόπιμα το αντίθετο: είναι επαναλήψιμη, κάτι που είναι και το ζητούμενο.
Πόσους αριθμούς μπορώ να δημιουργήσω ταυτόχρονα; Έως 1.000.000. Κληρώσεις πάνω από 50.000 υπολογίζονται σε φόντο (background worker) ώστε η σελίδα να παραμένει αποκρίσιμη, και στην οθόνη εμφανίζονται οι πρώτοι 2.000 με τον αριθμό των υπολοίπων — η αντιγραφή σάς δίνει πάντα τα πάντα.
Μπορώ να δημιουργήσω αρνητικούς αριθμούς; Ναι. Ορίστε αρνητικό ελάχιστο. Λειτουργεί ολόκληρο το εύρος των αριθμών JavaScript, συμπεριλαμβανομένων αρνητικών ορίων και στα δύο άκρα.
Επηρεάζει η ταξινόμηση την τυχαιότητα; Όχι. Οι αριθμοί κληρώνονται πρώτα και ταξινομούνται στη συνέχεια. Η ταξινόμηση αλλάζει μόνο τη σειρά με την οποία τους βλέπετε.
Θα δώσει το ίδιο seed τους ίδιους αριθμούς και αύριο; Ναι, και σε οποιαδήποτε άλλη συσκευή ή περιηγητή. Η seeded γεννήτρια είναι πλήρως ντετερμινιστική και εξαρτάται μόνο από το seed και τις ρυθμίσεις σας.
Τι μου λέει το τεστ ομοιομορφίας; Εκτελεί ένα τεστ χι-τετράγωνο που συγκρίνει πόσο συχνά εμφανίστηκε στην πράξη κάθε αριθμός με το πόσο συχνά θα έπρεπε. Αν η στατιστική τιμή παραμένει κάτω από την κρίσιμη τιμή, τα αποτελέσματα είναι συμβατά με ομοιόμορφη κατανομή. Χρειάζεται ένα αρκετά στενό εύρος και επαρκές πλήθος κληρώσεων — τουλάχιστον πέντε ανά πιθανή τιμή — για να έχει νόημα το συμπέρασμα.
Πώς λειτουργούν τα βάρη; Γράψτε τα ως ζεύγη number:weight, για παράδειγμα 1:5, 2:1, 3:1. Εδώ το 1 είναι πέντε φορές πιο πιθανό από το 2 ή το 3. Οι αριθμοί που δεν καταχωρείτε παίρνουν βάρος μηδέν και δεν κληρώνονται ποτέ.
Ποια σημειογραφία ζαριών υποστηρίζεται; Το 3d6 ρίχνει τρία εξάπλευρα ζάρια. Προσθέστε τροποποιητή με 3d6+2. Κρατήστε ή αφαιρέστε ζάρια με kh, kl, dh, dl — έτσι το 2d20kh1 κρατά το υψηλότερο από δύο d20 (advantage) και το 4d6dl1 αφαιρεί το χαμηλότερο από τέσσερα d6.
Αποθηκεύεται κάπου το ιστορικό μου; Μόνο σε αυτόν τον περιηγητή, στο local storage. Δεν φτάνει ποτέ σε διακομιστή, δεν συγχρονίζεται με άλλη συσκευή και εξαφανίζεται αν διαγράψετε τα δεδομένα του ιστότοπου. Εξάγετέ το σε JSON αν θέλετε να το διατηρήσετε ή να το μεταφέρετε.

Θα εκτιμούσα αν μοιραζόσασταν αυτές τις σελίδες με φίλους, τις προσθέσετε στους σελιδοδείκτες ή τις συνδέσετε. Ευχαριστώ! 🙏