پرش به محتوای اصلی

تولید عدد تصادفی رایگان

اعداد تصادفی در هر محدوده‌ای تولید کنید، لیست‌های اعداد منحصربه‌فرد ایجاد کنید یا تاس بیندازید. از تصادفی‌سازی ایمن رمزنگاری استفاده می‌کند.

پس از بارگذاری آفلاین کار می‌کند

🔒 هر عدد از تصادفی‌سازی رمزنگاری‌شده مرورگر (crypto.getRandomValues) استفاده می‌کند — واقعاً منصفانه، نه Math.random() قابل پیش‌بینی. هیچ چیزی ارسال نمی‌شود. با این حال از این اعداد برای تولید کلید رمزنگاری، توکن‌های امنیتی یا برنامه‌های لاتاری/قمار تنظیم‌شده که نیاز به منابع تصادفی تاییدشده و گواهی‌دار سخت‌افزاری دارند، استفاده نکنید.

می‌خواهید از میان یک فهرست بر اساس نام برنده انتخاب کنید یا سکه بیندازید؟ از ابزار سکه، چرخ شانس و انتخاب از فهرست استفاده کنید ←

کاربردهای رایج

  • تولید اعداد بخت‌آزماییانتخاب اعداد بخت‌آزمایی تصادفی برای Powerball، Mega Millions، EuroMillions و سایر بخت‌آزمایی‌ها.
  • انتخاب برنده‌ی تصادفی برای هدیهانتخاب منصفانه برنده‌ای تصادفی از فهرست ورودی‌های شماره‌دار برای رقابت‌ها و هدیه‌ها.
  • پرتاب تاس برای بازی‌های رومیزیهر ترکیبی از تاس را پرتاب کنید - d4، d6، d8، d10، d12، d20، d100 - برای D&D و بازی‌های نقش‌آفرینی رومیزی.
  • نمونه‌گیری تصادفی برای تحقیقتولید نمونه‌های تصادفی، اختصاص شناسه‌های تصادفی یا انتخاب زیرمجموعه‌ای تصادفی از مجموعه داده‌ای شماره‌دار.
  • تولید اعداد تصادفی داده‌های آزمایشیلیست‌های بزرگی از اعداد تصادفی را برای آزمایش الگوریتم‌ها، پر کردن پایگاه داده و تست‌های فشار سیستم ایجاد کنید.

نحوه کار

هر عددی که این ابزار تولید می‌کند از crypto.getRandomValues می‌آید — منبع تصادفی رمزنگاری‌امن مرورگر، همان که برای تولید کلید TLS استفاده می‌شود. یک الگوریتم نمونه‌برداری-رد دست‌نویس روی آن نشسته تا تعصب پیمانه‌ای که پیاده‌سازی‌های ساده Math.random() % range را دچار می‌کند حذف کند، شامل بازه‌های گسترده‌تر از ۲^۳۲ از طریق حساب BigInt.

  1. 1
    بازه و حالت خود را تنظیم کنید
    بین یک عدد تک، یک لیست دسته‌ای (تا ۱۰۰۰)، یا تاس‌های چندوجهی (d4 تا d100) انتخاب کنید. برای لیست‌ها می‌توانید مقادیر منحصربه‌فرد را نیز الزامی کنید و به‌طور اختیاری خروجی را صعودی مرتب کنید.
  2. 2
    crypto.getRandomValues آنتروپی خام می‌گیرد
    هر عدد از یک Uint32Array (یا BigUint64Array برای بازه‌های گسترده‌تر از ۲^۳۲) پرشده توسط RNG رمزنگاری مرورگر — نه Math.random() — گرفته می‌شود. نمونه‌برداری رد سپس مقادیری که توزیع را کج می‌کنند دور می‌ریزد، پس هر عدد صحیح در بازه شما احتمال دقیقاً برابری دارد.
  3. 3
    حالت مقدار-منحصربه‌فرد از فیشر-یتس یا ردیابی-رد استفاده می‌کند
    وقتی حالت منحصربه‌فرد روشن است و بازه در حافظه جا می‌شود (تا ۱۰۰٬۰۰۰ مقدار)، ابزار کل استخر را مادی‌سازی می‌کند و آن را با فیشر-یتس می‌نهد. برای بازه‌های بسیار بزرگ به‌جای آن مقادیر را یکی‌یکی می‌گیرد، تکرارها را رد می‌کند — و از هزینه حافظه ساخت یک آرایه میلیاردها-ورودی‌ای اجتناب می‌کند.
  4. 4
    نتایج با بازخورد انیمیشن‌دار فرود می‌آیند و در تاریخچه جلسه می‌مانند
    مقادیر نهایی با استفاده از requestAnimationFrame به‌جای خود انیمیت می‌شوند (یک چرخش اسلات-ماشینی برای اعداد، تاس‌های غلتنده برای حالت تاس)، سپس در یک گزارش تاریخچه اسکرول‌شونده که در هر زمانی می‌توانید کپی کنید ظاهر می‌شوند. چیزی مرورگر شما را ترک نمی‌کند.

ابزارهای مرتبط

سؤالات متداول