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

ولّد أرقامًا عشوائية ضمن أي مجال من الحد الأدنى إلى الأقصى. اختر أعدادًا صحيحة أو عشرية، وحدّد العدد، واسمح بالتكرار أو بمجموعات فريدة، بعشوائية بجودة تشفيرية.

نوع الرقم
السماح بالتكرار

طريقة الاستخدام

  1. أدخل البيانات

    أدخل القيم المطلوبة في حقول الإدخال.

  2. اضبط الإعدادات

    اختر الخيارات والإعدادات المناسبة.

  3. اعرض النتائج

    انقر احسب للحصول على النتائج فوراً.

ما هو مولّد الأرقام العشوائية؟

مولّد الأرقام العشوائية (random number generator) أداة تختار أرقامًا ضمن نطاق محدّد بحيث لا يستطيع أحد التنبّؤ بها أو التأثير فيها عمدًا. تحدّد فترة من 'القيمة الدنيا إلى القيمة العليا'، وتقرّر عدد الأرقام المراد سحبها، وما إذا كان يجوز تكرار القيمة نفسها (السماح بالتكرار أو بدون تكرار)، فتظهر فورًا قائمة بالأرقام المطابقة لشروطك.

أين تُستخدم؟

  • القرعة والفعاليات: تزيل التحيّز البشري في المواقف التي تهمّ فيها العدالة، مثل اختيار الفائزين بالجوائز، وترتيب العرض، وتوزيع الفرق.
  • اليانصيب واختيار الأرقام: لسحب أرقام وفق قواعد محدّدة، مثل 6 أرقام فريدة من 1 إلى 45.
  • المحاكاة وأخذ العيّنات: مفيدة في محاكاة النرد والعملة، والمعاينة العشوائية للمستجيبين في الاستبيانات، وتقسيم المجموعات في اختبارات A/B.

تستخدم هذه الأداة دالة crypto.getRandomValues() في المتصفّح لإنتاج أرقام عشوائية عالية الجودة مبنية على إنتروبيا نظام التشغيل، وتزيل التحيّز الذي قد يخلّ بالتوزيع المنتظم.

صيغة الحساب

يُحسب رقم عشوائي صحيح واحد مسحوب من النطاق [min, max] بالصيغة التالية.

النتيجة = min + ⌊ r × (max − min + 1) ⌋

  • min / max: القيمة الدنيا والقيمة العليا للنطاق (كلتاهما مشمولتان)
  • r: رقم عشوائي منتظم من 0 إلى أقل من 1
  • max − min + 1: العدد الكلي للأعداد الصحيحة الممكنة (= النطاق)

مثال: عند min=1 و max=45 و r=0.732،
1 + ⌊0.732 × 45⌋ = 1 + ⌊32.94⌋ = 1 + 32 = 33

في وضع بدون تكرار، إذا ظهرت قيمة مسحوبة سابقًا مرة أخرى يتم تجاهلها وإعادة السحب (المعاينة بالرفض). لذلك يجب أن يكون العدد ≤ النطاق؛ من 1 إلى 45 يمكن توليد 45 رقمًا فريدًا كحدّ أقصى.

الأسئلة الشائعة

هل مولّد الأرقام العشوائية هذا عشوائي حقًا؟
يستخدم واجهة crypto.getRandomValues() في المتصفّح لتوليد أرقام عشوائية آمنة تشفيريًا مبنية على إنتروبيا نظام التشغيل. عشوائيته أعلى بكثير من Math.random()، ويكاد يكون من المستحيل التنبّؤ بنتائجه.
ما الفرق بين Math.random() و crypto.getRandomValues()؟
Math.random() دالة شبه عشوائية: إذا عرفت البذرة الداخلية، يمكنك إعادة إنتاج التسلسل والتنبّؤ به. أما crypto.getRandomValues() فهو CSPRNG يعتمد على مصادر إنتروبيا نظام التشغيل، لذا لا يمكن التنبّؤ به. عندما تهمّ العدالة والأمان، كما في القرعة، يجب استخدام الأخير.
هل يمكنني توليد أرقام عشوائية بدون تكرار؟
نعم، اختر فقط 'بدون تكرار'. يستخدم المعاينة بالرفض، حيث يُتجاهَل أي رقم يطابق رقمًا مسحوبًا من قبل ويُستبدَل، فلا تظهر أي قيمة مرتين في النتيجة.
لماذا يظهر خطأ 'يتعذّر توليد N رقمًا بدون تكرار'؟
للسحب بدون تكرار، لا يمكن أن يتجاوز العدد المطلوب عددَ القيم داخل النطاق (النطاق = max − min + 1). على سبيل المثال، 15 رقمًا فريدًا من 1 إلى 10 أمر مستحيل. وسّع النطاق أو قلّل العدد.
كيف أُعدّه لسحب أرقام اليانصيب؟
اضبط القيمة الدنيا على 1 والعليا على 45 وعدد التوليد على 6 والتكرار على 'بدون تكرار'، فتحصل على أرقام بالشروط نفسها لليانصيب الكوري (6/45). ولرؤية رقم إضافي أيضًا، ارفع العدد إلى 7. هذا للاستئناس فقط ولا يضمن الفوز.
هل يمكنه توليد أرقام عشوائية عشرية (حقيقية) أيضًا؟
نعم، غيّر نوع الرقم إلى 'عشري' لتوليد أرقام حقيقية ضمن النطاق، ويمكنك تحديد عدد المنازل العشرية المطلوبة. هذا مفيد عندما تحتاج قيمًا متّصلة مثل احتمال بين 0 و1 أو إحداثيات.
ألا يوجد تحيّز في الأرقام العشوائية؟
إذا استخدمت فقط باقي قسمة رقم عشوائي على النطاق (المعامل/modulo)، ينشأ تحيّز المعامل وتظهر أرقام معيّنة أكثر من غيرها. تزيل هذه الأداة ذلك التحيّز عبر المعاينة بالرفض التي تتجاهل القيم التي تتجاوز أكبر مضاعف للنطاق، فتصبح لكل قيمة احتمالية متساوية.
هل يمكنني إعادة إنتاج النتيجة نفسها مرة أخرى (البذرة)؟
لا. يُنشئ هذا المولّد الأرقام من إنتروبيا جديدة في كل مرة وبدون بذرة، لذا لا يمكن إعادة إنتاج التسلسل نفسه عمدًا. وهو مناسب للسحب العادل لمرة واحدة؛ أما التجارب التي تتطلّب قابلية إعادة الإنتاج فاستخدم لها أداة منفصلة قائمة على البذرة.
صيغ موثّقة 2026

آلات حاسبة ذات صلة