DevToys Web Pro iconDevToys Web Proالمدونة
قيّمنا:
جرّب إضافة المتصفح:

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

الوضع

الخيارات

الحد الأدنى
الحد الأقصى
العدد

الإخراج

  • التفاصيل التقنية

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

    ما الذي تفعله الأداة

    ينتج مولّد الأرقام العشوائية أعداداً صحيحة عشوائية أو أعداداً ذات فاصلة عائمة قوية تشفيرياً باستخدام واجهة Web Crypto API ‏(crypto.getRandomValues). ويستخدم أخذ عينات بالرفض لإزالة انحياز المودولو، ما يضمن توزيعاً موحّداً عبر أي نطاق محدد. يمكنك توليد قيم مفردة أو دفعات من الأرقام العشوائية مع إعدادات قابلة للضبط للحد الأدنى والحد الأقصى والدقة.

    حالات استخدام شائعة للمطورين

    يستخدم المطوّرون مولّدات الأرقام العشوائية التشفيرية لمهام حسّاسة أمنياً مثل توليد رموز جلسات غير قابلة للتخمين، أو nonces، أو اختيارات اليانصيب، أو أخذ عينات عشوائية من مجموعات البيانات. ويستخدمها مطوّرو الألعاب لرميات النرد والتوليد الإجرائي عندما تكون العدالة مهمة. ويولّد مهندسو ضمان الجودة مُدخلات اختبار عشوائية لاختبار الفَزّ (fuzz testing)، ويستخدمها علماء البيانات لأخذ عينات عشوائية عندما لا تكون قابلية إعادة الإنتاج مطلوبة.

    تنسيقات البيانات أو أنواعها أو متغيراتها

    تدعم الأداة توليد أعداد صحيحة ضمن نطاق اعتباطي (حدود شاملة) وتوليد أعداد ذات فاصلة عائمة مع دقة عشرية قابلة للضبط. يتخلص أخذ العينات بالرفض من القيم التي قد تسبب انحياز المودولو عندما لا يقسم النطاق مساحة مخرجات مصدر العشوائية بالتساوي. تأتي الإنتروبيا الأساسية من مولّد الأرقام العشوائية الآمن تشفيرياً في نظام التشغيل (CryptGenRandom على Windows و/dev/urandom على Unix) والمُتاح عبر واجهة Web Crypto API في المتصفح.

    المزالق الشائعة والحالات الطرفية

    العشوائية التشفيرية أبطأ من Math.random() وغير ضرورية للاستخدامات غير الأمنية مثل خلط قائمة تشغيل. يمكن لأخذ العينات بالرفض نظرياً أن يكرر الحلقة مرات عديدة لنطاقات شاذة، لكن عملياً يكون ذلك مهملاً. لا يمكن تزويد الأرقام العشوائية المُولَّدة في المتصفح ببذرة لإعادة الإنتاج — إذا كنت تحتاج تسلسلات حتمية للاختبار، فاستخدم PRNG ببذرة بدلاً من ذلك. الحد الأقصى للنطاق الآمن للأعداد الصحيحة مقيّد بـ Number.MAX_SAFE_INTEGER في JavaScript ‏(2^53 - 1).

    متى تستخدم هذه الأداة بدلًا من الكود

    استخدم أداة المتصفح هذه عندما تحتاج رقماً عشوائياً غير متحيّز بسرعة لاتخاذ قرار لمرة واحدة، أو للاختبار اليدوي، أو للتحقق من أن تنفيذك ينتج قيماً ضمن النطاقات المتوقعة. للاستخدام في الإنتاج، استدعِ crypto.getRandomValues() مباشرةً في شفرتك أو استخدم دوال CSPRNG الأصلية في اللغة (وحدة secrets في Python، وSecureRandom في Java) التي تتكامل مع معالجة الأخطاء والتسجيل في تطبيقك.