מחולל מספרים אקראיים אונליין
התפלגות התוצאות
מבחן אחידות
הגרילו יותר מספרים בטווח צר יותר כדי להריץ את המבחן.
הגרלות אחרונות
הגדרות שמורות
איך עובד מחולל המספרים האקראיים?
המחולל מציע לך שני מקורות אקראיות, ואתה בוחר איזה מהם מתאים למשימה.
אקראיות מאובטחת שואבת אנטרופיה ממערכת ההפעלה שלך דרך ה-Web Crypto API (crypto.getRandomValues()). היא בלתי צפויה ובלתי ניתנת לחזרה — הבחירה הנכונה להגרלה אמיתית שבה אף אחד לא אמור להיות מסוגל לנחש את התוצאה מראש.
Seeded הופך כל טקסט שתקליד למצב התחלתי של מחולל דטרמיניסטי (xoshiro128**). אותו seed מייצר תמיד את אותם המספרים, כך שכל אחד יכול לשחזר את ההגרלה שלך ולוודא שקיבלת בדיוק את מה שאתה טוען שקיבלת.
שני המצבים פועלים לחלוטין בדפדפן שלך. שום מספר לא מגיע לשרת.
ללא הטיית מודולו
רוב המחוללים הפשוטים ממפים ערך אקראי בן 32 סיביות לטווח שלך באמצעות value % range. כאשר הטווח אינו מתחלק בצורה שווה ב-2³², המספרים הנמוכים ביותר מופיעים מעט יותר לעיתים קרובות משאר המספרים. על פני אלפי הגרלות זהו הבדל מדיד.
המחולל הזה משתמש במקום זאת ב-דגימת דחייה (rejection sampling): ערכים שהיו נופלים לתוך הזנב הלא-אחיד נזרקים ונדגמים מחדש. לכל מספר בטווח שלך יש בדיוק אותו סיכוי. אפשר לוודא זאת בעצמך באמצעות מבחן האחידות המובנה.
מה המחולל יודע לעשות
טווח
- מינימום ומקסימום — כל טווח שלם או עשרוני, כולל ערכים שליליים
- כמות מספרים — מ-1 ועד 1,000,000 בהגרלה אחת
- ללא כפילויות — כל מספר מופיע לכל היותר פעם אחת, בדיוק כמו בהגרלה אמיתית
- מיון — סדר ההגרלה, עולה, או יורד; המיון אינו נוגע באקראיות
- צעד (Step) — הגבלת התוצאות לכפולות של ערך מסוים, כך שיופיעו רק 0, 5, 10, 15
- החרגת מספרים — רשימת ערכים שאסור שיוגרלו לעולם
מצב
- מקור האקראיות — מאובטח (Web Crypto) או seeded (הניתן לשחזור)
- Seed — כל טקסט; אותו seed תמיד משחזר את אותה הגרלה
- התפלגות — אחידה, נורמלית (גאוסיאנית), אקספוננציאלית, פואסון, משולשת, בינומית
- משקלים — תן למספרים נבחרים סיכוי גבוה יותר, בכתיב
number:weight - סימון קוביות —
3d6+2,d20,2d20kh1ליתרון (advantage),4d6dl1להגרלת תכונות דמות
פלט
- מפריד — פסיק, רווח, נקודה-פסיק, טאב, שורה חדשה, או כל טקסט שתקליד
- שיטת ספירה — עשרוני, בינארי, אוקטלי, הקסדצימלי, או בסיס 36
- ריפוד באפסים — הפיכת 7 ל-007 עבור מספרי כרטיסים או תעודות זהות
- קידומת וסיומת — עטיפת כל מספר בטקסט קבוע
- תבנית —
{n}הוא המספר,{i}המיקום שלו, כך ש-user{n}הופך ל-user42 - העתקה בתור — טקסט רגיל, CSV, JSON, או טבלת Markdown
סטטיסטיקה
כל הגרלה מסוכמת בזמן אמת: סכום, ממוצע, חציון, מינימום, מקסימום, סטיית תקן, ובנוסף כמה תוצאות הן זוגיות, אי-זוגיות, או ראשוניות. היסטוגרמה מציגה את צורת ההתפלגות, ו-מבחן חי בריבוע (chi-square) בודק האם התוצאות אכן תואמות התפלגות אחידה.
היסטוריה
50 ההגרלות האחרונות נשמרות בדפדפן שלך, יחד עם ההגדרות שיצרו אותן — לחיצה אחת משחזרת כל אחת מהן. תצורות שבהן אתה משתמש לעיתים קרובות אפשר לשמור כפריסטים בעלי שם, וכל האוסף מיוצא לקובץ JSON שניתן לייבא במחשב אחר. שום דבר לא נשמר בשום מקום פרט לדפדפן הזה.
מקלדת
לחץ על רווח או R כדי להגריל שוב בלי להושיט יד לעכבר.
פריסטים מהירים
| פריסט | טווח | כמות | שימוש |
|---|---|---|---|
| 🎲 קובייה | 1–6 | 1 | משחקי קופסה, קבלת החלטות |
| 🪙 מטבע | 0–1 | 1 | עץ או פלי |
| 🎰 לוטו | 1–49 | 6 | ייחודי, ממוין, כמו בהגרלה אמיתית |
| 💯 1–100 | 1–100 | 1 | אחוזים, חלוקות A/B |
| 🔢 PIN | 0–9 | 4 | ארבע ספרות, כפילויות מותרות |
הגרלות הניתנות לשחזור
מצב Seeded קיים בשביל הרגעים שבהם “סמכו עליי, זה היה אקראי” פשוט לא מספיק.
בחרו seed שכולם יכולים להסכים עליו מראש — תאריך, האשטאג, שער הסגירה של מניה — והכריזו עליו לפני ההגרלה. אחר כך כל אחד יכול להקליד את אותו seed עם אותן ההגדרות ולקבל תוצאה זהה. לא הוכחתם שהמספרים היו בלתי צפויים; הוכחתם שלא הגרלתם שוב ושוב עד שקיבלתם תשובה שאהבתם.
זו גם הדרך להפוך אקראיות לניתנת לחזרה בעבודה שצריכה להיבדק: תוכנית דגימה שעמית לעבודה יכול להריץ מחדש, קבוצת נתוני בדיקה (fixtures) שנשארת יציבה לאורך חבילת בדיקות, תרגיל כיתתי שבו כל תלמיד מקבל אותם נתונים “אקראיים”.
בחירת התפלגות
אחידה נותנת לכל מספר בטווח את אותו הסיכוי. זו ההתפלגות שאנשים בדרך כלל מתכוונים אליה כשאומרים “אקראי”, והיא ברירת המחדל.
ההתפלגויות האחרות מרכזות את התוצאות סביב ערך מסוים, וזה מה שכמויות מהעולם האמיתי נוטות לעשות:
- נורמלית (גאוסיאנית) — גבהים, שגיאות מדידה, ציוני מבחנים. הגדירו ממוצע וסטיית תקן.
- אקספוננציאלית — זמני המתנה בין אירועים בלתי תלויים.
- פואסון — ספירת אירועים בפרק זמן קבוע: הגעות לשעה, פגמים לאצווה.
- משולשת — כשידועים לכם המינימום, המקסימום והערך הסביר ביותר, ושום דבר נוסף. נפוצה באומדני פרויקטים.
- בינומית — מספר ההצלחות מתוך מספר קבוע של ניסויים בהסתברות קבועה.
כל התפלגות נגזרת (clipped) לטווח שהגדרתם, כך שזנב גאוסיאני ארוך לא יכול לחרוג מהמינימום והמקסימום שלכם.
היכן משתמשים במספרים אקראיים
משחקים ובידור
- משחקי קופסה — הטלת קוביות, קביעת סדר תורים
- משחקי RPG שולחניים —
4d6dl1לתכונות דמות,2d20kh1ליתרון (advantage) - הגרלות ומתנות — בחירת זוכה, עם seed כדי שהמשתתפים יוכלו לוודא אותה
- חידונים — סדר שאלות אקראי
סטטיסטיקה ומדע
- דגימה — בחירת מדגם מאוכלוסייה ללא כפילויות
- בדיקות A/B — הקצאת משתתפים לקבוצות
- סימולציית מונטה קרלו — הערכת הסתברות באמצעות חזרתיות
- Bootstrapping — דגימה חוזרת (resampling) להערכת אי-ודאות
פיתוח
- נתוני בדיקה — מיליון ערכים, מיוצרים ברקע כך שהעמוד נשאר רספונסיבי
- Fixtures — עם seed, כך שבדיקה שנכשלת נכשלת באותה הצורה בכל פעם
- מזהים אקראיים — עם ריפוד, קידומות, או תבנית
- בדיקות עומס — מזהים לפי תבנית כמו
user{n}@example.com
מספרים אקראיים אמיתיים לעומת פסאודו-אקראיים
Math.random() | crypto.getRandomValues() | Seeded (xoshiro128**) | |
|---|---|---|---|
| סוג | פסאודו-אקראי | בטוח קריפטוגרפית | פסאודו-אקראי, דטרמיניסטי |
| מקור אנטרופיה | Seed שנבחר על ידי המנוע | CSPRNG מערכתי | טקסט ה-seed שלך |
| ניתן לחיזוי? | פוטנציאלית כן | לא | כן, בכוונה |
| ניתן לשחזור? | לא | לא | תמיד |
| מתאים לאבטחה | לא | כן | לא |
| מתאים לסטטיסטיקה | תלוי | כן | כן |
| מתאים להגרלות שניתן לאמת | לא | לא | כן |
Math.random() אינו בשימוש בשום מקום בכלי הזה.
הגרלות ללא כפילויות
כאשר מפעילים ללא כפילויות, כל מספר בטווח מופיע לכל היותר פעם אחת. אידיאלי עבור:
- הגרלות ומתנות — אף אחד לא יכול לזכות פעמיים
- תמורות (Permutations) — ערבוב אקראי של קבוצת פריטים
- בינגו — קריאת מספרים שנשארים “קרואים”
- לוטו — שישה מספרים שונים מתוך 1 עד 49
ההגרלה משתמשת בערבוב Fisher–Yates חלקי, כך שבקשת 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 מחושבות ב-worker ברקע כך שהעמוד נשאר רספונסיבי, והמסך מציג את 2,000 הראשונים יחד עם ספירה של השאר — ההעתקה עדיין נותנת לכם הכול.אפשר להפיק מספרים שליליים?
כן. הגדירו מינימום שלילי. כל טווח המספרים של JavaScript נתמך, כולל טווחים שליליים בשני הקצוות.האם המיון משפיע על האקראיות?
לא. המספרים מוגרלים תחילה וממוינים לאחר מכן. המיון משנה רק את הסדר שבו אתם רואים אותם.האם אותו seed ייתן את אותם מספרים גם מחר?
כן, וגם בכל מכשיר או דפדפן אחר. המחולל ה-seeded הוא דטרמיניסטי לחלוטין ותלוי אך ורק ב-seed ובהגדרות שלכם.מה מבחן האחידות אומר לי?
הוא מריץ מבחן חי בריבוע (chi-square) שמשווה כמה פעמים כל מספר אכן הופיע לעומת כמה פעמים הוא היה אמור להופיע. אם הסטטיסטיקה נשארת מתחת לערך הקריטי, התוצאות עקביות עם התפלגות אחידה. נדרש טווח צר יחסית ומספיק הגרלות — לפחות חמש לכל ערך אפשרי — כדי שיהיה בכך משהו משמעותי.איך המשקלים עובדים?
כתבו אותם כזוגותnumber:weight, לדוגמה 1:5, 2:1, 3:1. כאן 1 סביר פי חמישה מ-2 או 3. מספרים שלא רשמתם מקבלים משקל אפס ולעולם לא יוגרלו.
באיזה סימון קוביות יש תמיכה?
3d6 מטיל שלוש קוביות בנות שישה צדדים. הוסיפו מפקד עם 3d6+2. שמרו או הפילו קוביות עם kh, kl, dh, dl — כך ש-2d20kh1 שומר את הגבוה מבין שני d20 (יתרון) ו-4d6dl1 מפיל את הנמוך מבין ארבעה d6.