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

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

اضغط على «توليد» للاختيار
خيارات

هل تحتاج إلى طريقة سريعة وعادلة للحصول على رقم عشوائي؟ يولّد مولد الأرقام العشوائية المجاني هذا رقمًا واحدًا — أو قائمة كاملة من الأرقام — ضمن أي نطاق تختاره، من نطاق بسيط من 1 إلى 10 وصولًا إلى نطاقات تمتد إلى المليارات. حدد القيمتين الدنيا والقصوى في حقلي «الحد الأدنى» و«الحد الأقصى»، واختر عدد الأرقام التي تحتاجها في حقل «العدد»، ثم اضغط على «توليد». يشمل النطاق الحدين معًا، بحيث يمكن لنطاق من 1 إلى 10 أن يُرجع كلًا من 1 و10.

يُولَّد كل رقم مباشرةً في متصفحك عبر واجهة Web Crypto API (crypto.getRandomValues) — التي توفر قيمًا عشوائية قوية تشفيريًا من العشوائية الأساسية لنظام التشغيل الخاص بك. لا يُرسَل أي شيء إلى خادم، ولا يُسجَّل أي شيء، ولا نرى أرقامك أبدًا. التوليد فوري وخاص، ويستمر في العمل حتى على اتصال بطيء بعد تحميل الصفحة.

صُمِّمت الخيارات للمواقف الحقيقية التي يحتاج فيها الناس فعلًا إلى أرقام عشوائية. فعّل «بدون تكرار» حتى لا يظهر أي رقم مرتين — وهو الإعداد الذي تحتاجه للقرعات، أو السحوبات على طريقة اليانصيب، أو تقسيم الأشخاص إلى مجموعات دون تكرار. هل تحتاج إلى عشرين فائزًا من بين 500 مشارك؟ اضبط «الحد الأدنى» على 1 و«الحد الأقصى» على 500، وفعّل «بدون تكرار»، واضبط «العدد» على 20، ثم اضغط على «توليد». يرتب «ترتيب الفرز» النتيجة تصاعديًا أو تنازليًا، ويقوم زر واحد بنسخ جميع النتائج دفعة واحدة. عند تبديل «تنسيق الإخراج» من «سطر جديد» إلى «مفصول بمسافات» أو «مفصول بفواصل» يظهر حقل «عدد المجموعات»: عدة سحوبات مستقلة في آن واحد — مثل عشرين مجموعة من 3 أرقام لعشرين جولة قرعة — بينما يحدد «السماح بالتكرار بين المجموعات» ما إذا كان يمكن ظهور الرقم نفسه في أكثر من واحدة منها.

كيف تُولَّد العشوائية فعليًا؟ يوفر متصفحك قيمًا عشوائية قوية تشفيريًا عبر واجهة Web Crypto API، لا عبر دالة PRNG في JavaScript مثل Math.random(). عند الضغط على «توليد»، تطلب الصفحة قيمًا عشوائية عبر crypto.getRandomValues وتستخدمها لتوليد أرقام ضمن النطاق الذي اخترته. يأتي مصدر العشوائية الأساسي من نظام التشغيل، لذا لا تحتاج الصفحة إلى الاحتفاظ ببذرة (seed) خاصة بها أو تسلسل شبه عشوائي.

تحويل قيمة خام إلى نطاقك هو المكان الذي تُخطئ فيه المولدات بصمت، ويستحق فقرة مستقلة. أخذ باقي قسمة القيمة على حجم النطاق هو الأسلوب البديهي والمتحيز في آن واحد: فما لم يكن 2^32 قابلاً للقسمة تمامًا على حجم النطاق، تظهر الأرقام الأصغر بشكل أكثر تكرارًا قليلًا من البقية. يُسمى هذا الخلل modulo bias، وهو قابل للقياس وليس نظريًا فقط. يقوم هذا المولد بدلًا من ذلك بتجاهل أي قيمة تتجاوز أكبر مضاعف دقيق للنطاق، ويولّد من جديد — وهي تقنية تُسمى rejection sampling. يكلّف هذا بضع محاولات إضافية، لكنه يمنح في المقابل ضمانًا دقيقًا: يحمل كل رقم بين «الحد الأدنى» و«الحد الأقصى» الاحتمال نفسه تمامًا، لا احتمالًا شبه متساوٍ.

ما الذي يجعل الرقم عشوائيًا حقًا؟ يكون الرقم عشوائيًا بما يكفي عندما لا تكشف النتائج السابقة عن شيء بخصوص التالي — وفي الواقع توجد ثلاثة مستويات لذلك. تنفّذ دالة شبه عشوائية عادية مثل Math.random() خوارزمية حتمية: يستطيع أي شخص يتعرف على حالتها الداخلية إعادة إنتاج التسلسل بأكمله، ما يجعلها مناسبة لخلط شرائح عرض تقديمي، وغير مناسبة لأي شيء لا يجب أن تكون نتيجته متوقعة. المولد الآمن تشفيريًا (CSPRNG) — وهو المستوى الذي تستخدمه هذه الأداة — هو أيضًا خوارزمية، لكنه مصمم لإنتاج قيم غير متوقعة باستخدام مصدر آمن لعشوائية النظام، ومبني بحيث لا تكشف مراقبة مخرجاته عن شيء بخصوص ما سيأتي بعدها. أما العشوائية الفيزيائية، من مصادر مثل الضجيج الجوي أو الاضمحلال الإشعاعي، فتقف فوق كلا المستويين، رغم أن الفرق العملي يزول عندما يتعلق الأمر بتوليد رقم من نطاق. لهذا السبب بالتحديد تُتيح المتصفحات واجهة تشفير منفصلة بدلًا من الاكتفاء بتحسين Math.random(): فكلاهما يحل مشكلة مختلفة، وواحد منهما فقط آمن عندما تكون النتيجة مهمة لشخص ما.

لا يُفترض أن يبدو التسلسل العشوائي عشوائيًا للبشر. ولّد عشرة أرقام بين 1 و10، وستلاحظ بانتظام تكرارًا، أو زوجًا شبه متطابق مثل 7، 7، 8، أو سلسلة قصيرة ترتفع بأكملها — وكل حالة من هذه الحالات طبيعية تمامًا. العشوائية الحقيقية غير متوقعة، لا متساوية التوزيع: يظهر كل رقم بشكل مستقل عن سابقيه، ولا تملك الأرقام السابقة أي تأثير على اللاحقة إطلاقًا، ولا يحين «دور» أي رقم للظهور أكثر من غيره أبدًا. الغريزة التي تزعم عكس ذلك هي مغالطة المقامر، وهي الغريزة نفسها التي تجعل البشر أنفسهم مولدات ضعيفة للأرقام العشوائية — فعندما يُطلب منا ابتكار تسلسل عشوائي، نتجنب التكرار ونوزّع القيم بتساوٍ أكبر بكثير مما قد تفعله الصدفة أبدًا. النتيجة التي تبدو منظمة بشكل مثير للريبة هي بصمة إنسان؛ أما العشوائية الحقيقية فتنتج تكتلات.

لماذا تختار مولد الأرقام العشوائية هذا؟

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

يحمل هذا المولد بعض القيود المعقولة التي يجدر بك معرفتها. لا يمكن لوضع «بدون تكرار» توليد أرقام أكثر مما يحتويه النطاق: فعشرون قيمة فريدة بين 1 و10 غير موجودة أصلًا. السحوبات مستقلة ولا تؤثر النتائج السابقة على اللاحقة، لذا لا يعيد تحديث الصفحة ضبط أي دورة — فببساطة لا توجد دورة لتكون فيها. ورغم أن الأرقام قوية تشفيريًا، فإن السحب هنا اختيار عادل لا تنبؤ: تستخدم سحوبات اليانصيب الرسمية معداتها الخاصة، الفعلية أو المعتمدة، وليس لما يُحسب في متصفحك أي صلة بها. وضمن هذه القيود يبقى الضمان قويًا: يحصل كل رقم في نطاقك على الفرصة نفسها تمامًا، في كل سحب على حدة.

FAQ

هل العشوائية آمنة تشفيريًا؟

تستخدم الأداة واجهة Web Crypto API الخاصة بمتصفحك (crypto.getRandomValues)، التي تستمد العشوائية من المصدر الآمن تشفيريًا في نظام التشغيل لديك. وخلافًا للدوال شبه العشوائية البسيطة، صُمِّمت نتيجتها لتكون غير متوقعة عمليًا، ويحافظ rejection sampling على احتمال متساوٍ لكل رقم في النطاق بدلًا من تفضيل القيم الأصغر.

كيف أولّد رقمًا عشوائيًا ضمن نطاق محدد؟

أدخل أصغر قيمة ممكنة في حقل «الحد الأدنى» وأكبر قيمة في حقل «الحد الأقصى»، ثم اضغط على «توليد». يشمل النطاق الحدين في النتيجة، بحيث يمكن لنطاق من 1 إلى 10 أن يُنتج كلًا من 1 و10.

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

نعم. اضبط حقل «العدد» على الكمية التي تحتاجها (حتى 1000)، وسيولّد المولد القائمة كاملة بنقرة واحدة. يمكنك بعدها نسخ جميع النتائج إلى الحافظة بزر النسخ، أو حفظها في ملف.

هل يمكنني توليد عدة مجموعات من الأرقام دفعة واحدة؟

نعم. بدّل «تنسيق الإخراج» من «سطر جديد» إلى «مفصول بمسافات» أو «مفصول بفواصل» ليظهر حقل «عدد المجموعات». اضبطه على عدد السحوبات المستقلة التي تحتاجها — مثل عشرين مجموعة من 3 أرقام لعشرين جولة قرعة — واختر ما إذا كان يُسمح للتكرار بالظهور بين مجموعات مختلفة.

هل يمكنني ترتيب الأرقام المولَّدة؟

نعم. استخدم خيار «ترتيب الفرز» لترتيب كل قائمة تصاعديًا أو تنازليًا، أو اتركه على «لا شيء» للحفاظ على الأرقام بالترتيب الذي وُلِّدت به.

كيف أتجنب الأرقام المكررة؟

فعّل مفتاح «بدون تكرار». عند تفعيله، يكون كل رقم في القائمة مختلفًا — وهو مثالي للقرعات، أو السحوبات على الجوائز، أو تقسيم الأشخاص إلى مجموعات. لاحظ أن العدد لا يمكن أن يتجاوز حجم النطاق: لا يمكنك توليد 20 رقمًا فريدًا بين 1 و10.

لماذا تستمر الأرقام نفسها في التكرار؟

لأن السحوبات المستقلة تتكرر، وهكذا تبدو العشوائية. يتجاهل كل سحب تمامًا كل سحب سابق، لذا في نطاق من 1 إلى 10، تكون احتمالية ظهور الرقم نفسه مرتين متتاليتين 1 من أصل 10 في كل مرة — وهذا أمر معتاد، لا خلل. إذا كنت تحتاج إلى قائمة دون تكرار، فعّل «بدون تكرار»؛ فهذا يقيّد السحب عمدًا، بدلًا من إصلاح أي خطأ.

لماذا لا يبدو التسلسل العشوائي عشوائيًا؟

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

هل يمكنني الوثوق بعشوائية مولَّدة في متصفح؟

نعم، عندما تأتي من واجهة Web Crypto API كما هو الحال هنا. توفر crypto.getRandomValues قيمًا عشوائية قوية تشفيريًا باستخدام العشوائية الأساسية لنظام التشغيل، لا عبر دالة PRNG في JavaScript مثل Math.random(). أما Math.random() فهو ما يجب ألا تثق به في أي شيء مهم حقًا: فهو حتمي ولم يُصمَّم قط ليكون غير متوقع.

هل يمكن التنبؤ بالأرقام العشوائية أو التأثير عليها؟

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

هل هو مناسب لاختيار الفائزين بالهدايا أو القرعات؟

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

هل يغيّر تحديث الصفحة العشوائية؟

لا، وهذا غير ضروري أصلًا. يطلب كل سحب بالفعل قيمًا عشوائية جديدة من نظام التشغيل، لذا تكون النتائج مستقلة سواء ضغطت «توليد» عشر مرات متتالية أو أعدت تحميل الصفحة بين كل ضغطة. لا توجد دورة لإعادة تشغيلها ولا حالة تصبح قديمة — يكتفي التحديث بمسح النتائج المعروضة على الشاشة.

هل المولد مجاني، وهل تحتفظون بأرقامي؟

الأداة مجانية تمامًا ولا تتطلب تسجيلًا. تُولَّد جميع الأرقام محليًا في متصفحك ولا تغادر جهازك أبدًا، لذا لن نتمكن من حفظ نتائجك أو رؤيتها حتى لو أردنا ذلك.