الشرح
كيف يعمل مولّد الأرقام العشوائية
يُنتج مولّد الأرقام العشوائية أعدادًا صحيحة من نطاق قابل للاختيار بحرية. أنت تقرّر ما إذا كان يمكن أن تتكرر الأرقام (السحب مع/بدون إرجاع) وكيف تُرتَّب المخرجات.
تُرتَّب الحدود داخليًا وتُضيَّق إلى الأعداد الصحيحة التي تحتويها. الحدود الصحيحة المتساوية تعطي دائمًا نفس القيمة الوحيدة الممكنة. النطاقات السالبة مدعومة أيضًا. بدون تكرار، يُحدَّد العدد المستحيل بشكل مرئي إلى حجم النطاق.
يحدّد الفاصل كيفية فصل الأرقام عند النسخ — عملي للاستيراد إلى Excel أو ملفات CSV أو برامج أخرى.
أخطاء شائعة
- استخدام العشوائية الزائفة للتشفير: Math.random قابل للتنبؤ وغير مناسب للأغراض الأمنية. لكلمات المرور أو الرموز أو المفاتيح التشفيرية استخدم crypto.getRandomValues().
- قراءة مخرجات واحدة كاختبار جودة: السلاسل الصغيرة لا تثبت التوزيع المنتظم ولا غيابه؛ لا تجري هذه الأداة أي اختبار جودة إحصائي.
- فهم الحدود العشرية كمخرجات عشرية: يُخرِج المولّد أعدادًا صحيحة فقط، ويقرّب الحد الأدنى للأعلى والحد الأقصى للأسفل.
- توقّع إمكانية إعادة الإنتاج: بدون قيمة بذرة تختلف النتائج في كل استدعاء. للتجارب القابلة لإعادة الإنتاج استخدم مولّد بذرة موثّقًا.
حدود هذه الأداة
- تستخدم Math.random — ليست بديلاً عن العشوائية الآمنة تشفيريًا في التطبيقات الأمنية.
- قيم صحيحة فقط — بدون أعداد عشرية أو توزيعات طبيعية.
- لا يمكن ضبط قيمة بذرة — النتائج غير قابلة لإعادة الإنتاج.
- 500 رقم كحد أقصى لكل تشغيل — استخدم أدوات مخصصة لمجموعات البيانات الأكبر.
المصادر
- NIST SP 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators (DRBG). معيار لمولّدات الأرقام العشوائية التشفيرية.
- ECMAScript Specification: Math.random() — يعطي أرقامًا عشوائية زائفة بتوزيع منتظم تقريبًا في النطاق [0, 1).