مولد أرقام عشوائية مجاني عبر الإنترنت

Acrafto Team الرياضيات
تم التحديث
أنماط سريعة
كل شيء يعمل داخل متصفحك. لا يغادر أي رقم جهازك أبدًا.

كيف يعمل مولد الأرقام العشوائية؟

يمنحك المولد مصدرين للعشوائية، وتختار أنت المناسب لمهمتك.

العشوائية الآمنة تستمد الانتروبيا من نظام تشغيلك عبر Web Crypto API (crypto.getRandomValues()). إنها غير قابلة للتنبؤ وغير قابلة للتكرار - الخيار الصحيح لسحب حقيقي لا ينبغي لأحد أن يتمكن من تخمين نتيجته مسبقًا.

الوضع المزروع (Seeded) يحوّل أي نص تكتبه إلى حالة بداية لمولد حتمي (xoshiro128**). نفس البذرة تنتج دائمًا نفس الأرقام، بحيث يمكن لأي شخص إعادة تشغيل سحبك والتحقق من أنك حصلت على ما تدّعيه.

كلاهما يعمل بالكامل داخل متصفحك. لا يصل أي رقم إلى خادم على الإطلاق.

بدون انحياز المعامل (modulo bias)

معظم المولدات البسيطة تُسقط قيمة 32-بت عشوائية على نطاقك باستخدام value % range. عندما لا ينقسم النطاق بالتساوي على 2³²، تظهر الأرقام الأدنى بتكرار أعلى قليلاً من البقية. عبر آلاف السحوبات يصبح هذا قابلاً للقياس.

يستخدم هذا المولد بدلاً من ذلك أخذ عينات بالرفض (rejection sampling): القيم التي تقع في الذيل غير المتساوي تُرفض ويُعاد سحبها. لكل رقم في نطاقك نفس الفرصة تمامًا. يمكنك التحقق من ذلك بنفسك باستخدام اختبار التجانس المدمج.

ما الذي يستطيع المولد فعله

النطاق

  • الحد الأدنى والحد الأقصى - أي نطاق صحيح أو عشري، بما في ذلك القيم السالبة
  • عدد الأرقام - من 1 حتى 1,000,000 في سحب واحد
  • بدون تكرار - يظهر كل رقم مرة واحدة على الأكثر، بنفس طريقة السحب الحقيقي
  • الترتيب - ترتيب السحب، تصاعديًا، أو تنازليًا؛ الترتيب لا يمس العشوائية أبدًا
  • الخطوة - قصر النتائج على مضاعفات قيمة معينة، بحيث تظهر فقط 0، 5، 10، 15
  • استبعاد أرقام - سرد قيم يجب ألا تُسحب أبدًا

الوضع

  • مصدر العشوائية - آمن (Web Crypto) أو مزروع (قابل لإعادة الإنتاج)
  • البذرة - أي نص؛ نفس البذرة تعيد دائمًا تشغيل نفس السحب
  • التوزيع - منتظم، طبيعي (Gaussian)، أسي، بواسون، مثلثي، ذو الحدين
  • الأوزان - امنح أرقامًا مختارة فرصة أعلى، تُكتب بصيغة number:weight
  • ترميز النرد - 3d6+2، d20، 2d20kh1 للأفضلية، 4d6dl1 لحساب الإحصاءات

الإخراج

  • الفاصل - فاصلة، مسافة، فاصلة منقوطة، تبويب، سطر جديد، أو أي شيء تكتبه
  • النظام العددي - عشري، ثنائي، ثماني، سداسي عشري، أو أساس 36
  • الحشو بالأصفار - حوّل 7 إلى 007 لأرقام التذاكر أو المعرفات
  • بادئة ولاحقة - غلّف كل رقم بنص ثابت
  • القالب - {n} هو الرقم، {i} موضعه، بحيث تصبح user{n} هي user42
  • نسخ كـ - نص عادي، CSV، JSON، أو جدول Markdown

الإحصاءات

يُلخَّص كل سحب مباشرة: المجموع، المتوسط، الوسيط، الأدنى، الأعلى، الانحراف المعياري، بالإضافة إلى عدد النتائج الزوجية والفردية والأولية. يُظهر مدرَّج تكراري شكل التوزيع، ويخبرك اختبار كاي تربيع (chi-square) ما إذا كانت النتائج تطابق فعليًا توزيعًا منتظمًا.

السجل

تُحفظ آخر 50 عملية سحب في متصفحك، مع الإعدادات التي أنتجتها - نقرة واحدة تستعيد أيًا منها. يمكن حفظ الإعدادات التي تستخدمها كثيرًا كإعدادات مسبقة مسمّاة، ويمكن تصدير المجموعة كاملة إلى ملف JSON يمكنك استيراده على جهاز آخر. لا يُخزَّن شيء في أي مكان سوى هذا المتصفح.

لوحة المفاتيح

اضغط مسافة أو R لإجراء سحب جديد دون الحاجة إلى الفأرة.

إعدادات سريعة

الإعداد المسبقالنطاقالعددالاستخدام
🎲 النرد1–61ألعاب الطاولة، اتخاذ القرارات
🪙 العملة0–11صورة أو كتابة
🎰 اليانصيب1–496فريد ومرتّب، كسحب حقيقي
💯 1–1001–1001النسب المئوية، تقسيمات A/B
🔢 رمز PIN0–94أربعة أرقام، التكرار مسموح

سحوبات قابلة لإعادة الإنتاج

الوضع المزروع موجود من أجل اللحظات التي لا تكفي فيها عبارة “ثق بي، كان عشوائيًا”.

اختر بذرة يمكن للجميع الاتفاق عليها مسبقًا - تاريخ، وسم (هاشتاغ)، أو سعر إغلاق لشيء علني - وأعلنها قبل السحب. عندها يمكن لأي شخص كتابة نفس البذرة بنفس الإعدادات والحصول على نفس النتيجة تمامًا. أنت لم تثبت أن الأرقام كانت غير قابلة للتنبؤ؛ بل أثبتّ أنك لم تُعِد السحب حتى أعجبتك الإجابة.

هذه أيضًا الطريقة لجعل العشوائية قابلة للتكرار في العمل الذي يجب التحقق منه: خطة عيّنات يمكن لزميل إعادة تشغيلها، مجموعة بيانات اختبار تظل ثابتة عبر مجموعة اختبارات، أو تمرين صفي يحصل فيه كل طالب على نفس البيانات “العشوائية”.

اختيار توزيع

المنتظم يمنح كل رقم في النطاق نفس الفرصة. هذا ما يقصده الناس عادة بالعشوائية، وهو الخيار الافتراضي.

بقية التوزيعات تجمّع النتائج حول قيمة معينة، وهو ما تميل إليه الكميات في العالم الحقيقي:

  • الطبيعي (Gaussian) - الأطوال، أخطاء القياس، درجات الاختبارات. حدّد متوسطًا وانحرافًا معياريًا.
  • الأسي - أوقات الانتظار بين أحداث مستقلة.
  • بواسون - عدد الأحداث ضمن فترة زمنية ثابتة: الوصول في الساعة، العيوب في الدفعة.
  • المثلثي - عندما تعرف الحد الأدنى والحد الأقصى والقيمة الأكثر احتمالًا ولا شيء غير ذلك. شائع في تقديرات المشاريع.
  • ذو الحدين - عدد النجاحات من عدد ثابت من المحاولات باحتمال ثابت.

كل توزيع مقصوص عند حدود النطاق الذي حددته، بحيث لا يستطيع ذيل توزيع Gaussian الطويل الإفلات من الحد الأدنى والأقصى.

أين تُستخدم الأرقام العشوائية

الألعاب والترفيه

  • ألعاب الطاولة - رمي النرد، ترتيب الأدوار
  • ألعاب تقمص الأدوار (RPG) - 4d6dl1 لسمات الشخصية، 2d20kh1 للأفضلية
  • المسابقات - اختيار فائز، مع بذرة حتى يتمكن المشاركون من التحقق
  • الاختبارات - ترتيب عشوائي للأسئلة

الإحصاء والعلوم

  • أخذ العينات - سحب عينة من مجتمع دون تكرار
  • اختبار A/B - توزيع المشاركين على مجموعات
  • محاكاة مونت كارلو - تقدير الاحتمال عبر التكرار
  • التمهيد (Bootstrapping) - إعادة أخذ العينات لتقدير عدم اليقين

التطوير

  • بيانات الاختبار - مليون قيمة، تُولَّد في الخلفية بحيث تبقى الصفحة سريعة الاستجابة
  • تركيبات الاختبار (Fixtures) - مزروعة، بحيث يفشل اختبار فاشل بنفس الطريقة مرتين
  • معرّفات عشوائية - مع حشو، بادئات، أو قالب
  • اختبار الحمل - معرّفات قائمة على قوالب مثل user{n}@example.com

الأرقام العشوائية الحقيقية مقابل شبه العشوائية

Math.random()crypto.getRandomValues()مزروع (xoshiro128**)
النوعشبه عشوائيآمن تشفيريًاشبه عشوائي، حتمي
مصدر الانتروبيابذرة يختارها المحركCSPRNG نظامينص بذرتك
قابل للتنبؤ؟محتمللانعم، عن قصد
قابل للتكرار؟لالادائمًا
مناسب للأمانلانعملا
مناسب للإحصاءيعتمدنعمنعم
مناسب للسحوبات القابلة للتحققلالانعم

لا يُستخدم Math.random() في أي مكان في هذه الأداة.

سحوبات بدون تكرار

مع تفعيل بدون تكرار، يظهر كل رقم في النطاق مرة واحدة على الأكثر. مثالي لـ:

  • المسابقات - لا يمكن لأحد الفوز مرتين
  • التباديل - خلط مجموعة من العناصر
  • البينغو - نداء أرقام تبقى منادى بها
  • اليانصيب - ستة أرقام مميزة من 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()، وهو مولد آمن تشفيريًا يستمد التغذية من مجمّع انتروبيا نظام التشغيل. النتائج موزعة بشكل منتظم وغير قابلة للتنبؤ. الوضع المزروع هو عكس ذلك عمدًا: إنه قابل لإعادة الإنتاج، وهذا هو المقصود منه.
كم عدد الأرقام التي يمكنني توليدها دفعة واحدة؟ حتى 1,000,000. تُحسب السحوبات التي تتجاوز 50,000 في عامل خلفي (worker) بحيث تبقى الصفحة سريعة الاستجابة، وتعرض الشاشة أول 2,000 رقم مع عدّاد للباقي - النسخ يمنحك كل شيء رغم ذلك.
هل يمكنني توليد أرقام سالبة؟ نعم. اضبط حدًا أدنى سالبًا. يعمل النطاق الكامل لأرقام JavaScript، بما في ذلك النطاقات السالبة عند طرفيها.
هل يؤثر الترتيب على العشوائية؟ لا. تُسحب الأرقام أولاً ثم تُرتَّب بعد ذلك. الترتيب يغيّر فقط الترتيب الذي تراها به.
هل ستعطي نفس البذرة نفس الأرقام غدًا؟ نعم، وعلى أي جهاز أو متصفح آخر. المولد المزروع حتمي بالكامل ولا يعتمد على شيء سوى بذرتك وإعداداتك.
بماذا يخبرني اختبار التجانس؟ يشغّل اختبار كاي تربيع يقارن عدد مرات ظهور كل رقم فعليًا بعدد المرات التي كان يفترض أن يظهر فيها. إذا بقيت الإحصائية أقل من القيمة الحرجة، فإن النتائج متسقة مع توزيع منتظم. يحتاج الاختبار إلى نطاق ضيق نسبيًا وعدد كافٍ من السحوبات - خمسة على الأقل لكل قيمة ممكنة - ليعطي نتيجة ذات معنى.
كيف تعمل الأوزان؟ اكتبها كأزواج number:weight، على سبيل المثال 1:5, 2:1, 3:1. هنا الرقم 1 احتمال ظهوره خمسة أضعاف احتمال ظهور 2 أو 3. الأرقام التي لا تدرجها تحصل على وزن صفر ولا تُسحب أبدًا.
ما ترميز النرد المدعوم؟ 3d6 يرمي ثلاثة نردات سداسية. أضف معدِّلًا بـ 3d6+2. احتفظ بنردات أو تخلّص منها باستخدام kh، kl، dh، dl - بحيث تحتفظ 2d20kh1 بالأعلى من نردتي d20 (الأفضلية)، وتُسقط 4d6dl1 الأدنى من أربع نردات d6.
هل يُخزَّن سجلي في أي مكان؟ فقط في هذا المتصفح، في التخزين المحلي (local storage). لا يصل أبدًا إلى خادم، ولا يتزامن مع جهاز آخر، ويختفي إذا مسحت بيانات الموقع. صدّره إلى JSON إذا أردت الاحتفاظ به أو نقله.

سأقدر إذا كنت تستطيع مشاركة هذه الصفحات مع الأصدقاء أو حفظها في الإشارات المرجعية أو الربط بها. شكراً! 🙏