انتخاب تصادفی از فهرست

هر فهرستی — نام‌ها، وظایف یا ایده‌ها — را وارد کنید و به ابزار اجازه دهید یک انتخاب تصادفی عادلانه انجام دهد. هر قرعه‌کشی به‌طور امن در مرورگر شما اجرا می‌شود و هیچ داده‌ای از دستگاه شما خارج نمی‌گردد.

برای قرعه‌کشی روی «تولید» کلیک کنید
جداکننده به‌طور خودکار تشخیص داده می‌شود، اما می‌توانید آن را در زیر انتخاب کنید.
گزینه‌های پیشرفته

آیا نیاز دارید برنده یک قرعه‌کشی را مشخص کنید، از یک دانش‌آموز درس بپرسید یا تصمیم بگیرید چه کسی نان بخرد؟ این ابزار آنلاین و رایگان، از هر فهرستی که وارد کنید یک انتخاب تصادفی عادلانه انجام می‌دهد. نام‌ها یا گزینه‌های خود را در کادر «موارد» وارد کنید — هر کدام در یک خط جدید یا با کاما جدا شده — مشخص کنید چند نتیجه می‌خواهید را در بخش «تعداد» تنظیم کنید و روی دکمه «تولید» کلیک کنید. فهرست شما به حداقل دو مورد نیاز دارد و می‌تواند تا ۱۰۰۰ ورودی را در خود جای دهد، که طول هر کدام حداکثر ۲۰۰ نویسه (کاراکتر) است.

هر قرعه‌کشی مستقیماً در مرورگر شما با استفاده از Web Crypto API (crypto.getRandomValues) انجام می‌شود، که مقادیر تصادفی و از نظر رمزنگاری قدرتمندی را از سیستم‌عامل شما دریافت می‌کند. فهرست شما هرگز به هیچ سروری ارسال نمی‌شود، ثبت نمی‌گردد و ما هرگز آن را نمی‌بینیم — این موضوع در اینجا اهمیت بیشتری نسبت به سایر ابزارها دارد، زیرا معمولاً کاربران اطلاعاتی مانند فهرست مشتریان، دفتر حضور و غیاب کلاس یا نام همکاران را وارد می‌کنند. دکمه «بارگیری از فایل» نیز به همین وعده عمل می‌کند: مرورگر شما فایل را می‌خواند و کادر را به‌صورت محلی پر می‌کند، بدون اینکه چیزی در اینترنت بارگذاری شود.

گزینه‌ها برای فهرست‌هایی طراحی شده‌اند که کاربران در دنیای واقعی دارند. تنظیمات «جداکننده» به‌طور پیش‌فرض روی «خودکار» قرار دارد، که تفاوت بین خطوط جدید و کاماها را تشخیص می‌دهد و می‌فهمد فهرست شما از کدام یک استفاده می‌کند؛ بنابراین اطلاعات کپی‌شده از یک صفحه گسترده، پیام چت یا سند متنی بدون نیاز به هیچ‌گونه تغییر فرمت توسط شما، به‌درستی کار می‌کند. وقتی داده‌های شما ترکیبی از فرمت‌های مختلف است، آن را روی «خط جدید»، «کاما» یا «فاصله» قفل کنید — و توجه داشته باشید که انتخاب «فاصله» همیشه یک تصمیم آگاهانه است و هرگز خودکار انجام نمی‌شود، زیرا مواردی مانند نام و نام‌خانوادگی خودشان دارای فاصله هستند و جدا کردن خودکار آن‌ها بیشتر از اینکه مشکل را حل کند، فهرست‌ها را خراب می‌کند. فیلد «تعداد» مشخص می‌کند که چند مورد استخراج شود، از ۱ تا ۱۰۰. آیا می‌خواهید سه برنده را از بین ۲۰۰ شرکت‌کننده قرعه‌کشی کنید؟ اسامی آن‌ها را بچسبانید، «تعداد» را روی ۳ تنظیم کنید و «تولید» را بزنید. دو تنظیمات فقط زمانی قابل استفاده هستند که تعداد روی ۲ یا بیشتر باشد و تا آن زمان غیرفعال (خاکستری) می‌مانند: کلید «بدون تکرار» که تعیین می‌کند آیا یک مورد می‌تواند دو بار قرعه‌کشی شود یا خیر، و «قالب خروجی» که مشخص می‌کند نتایج چگونه از هم جدا شوند — «هر کدام در یک خط جدید»، «جدا شده با فاصله» یا «جدا شده با کاما».

ردیفی از دکمه‌ها در داخل کادر «موارد» ویرایش‌هایی را انجام می‌دهند که در غیر این صورت باید جای دیگری انجام می‌دادید. «بارگیری از فایل» فهرستی را مستقیماً از یک فایل متنی ساده یا CSV استخراج می‌کند. «مخلوط کردن» ترتیب موارد داخل کادر را به هم می‌ریزد، «مرتب سازی» آن‌ها را به ترتیب الفبا و اعداد را به‌صورت طبیعی مرتب می‌کند و کلیک دوم روی آن ترتیب را برعکس می‌کند، و «پاک کردن» کادر را کاملاً خالی می‌کند. دکمه «پر کردن با داده های نمونه» یک فهرست کوتاه آزمایشی را قرار می‌دهد تا بتوانید ابزار را با یک کلیک امتحان کنید، در حالی که «گسترش به تناسب محتوا» کادر را باز می‌کند تا یک فهرست طولانی به‌طور کامل نمایش داده شود و «جمع کردن به اندازه پیش فرض» آن را به حالت اول برمی‌گرداند. در زیر نتیجه، «کپی همه» هر انتخاب را در کلیپ‌بورد شما قرار می‌دهد، «ذخیره در فایل» آن‌ها را در دستگاه شما ذخیره می‌کند و «تاریخچه» ۱۰ قرعه‌کشی اخیر شما را در مرورگرتان نگه می‌دارد، تا نتیجه قبلی تنها با یک کلیک در دسترس باشد.

انتخاب در واقع چگونه انجام می‌شود؟ وقتی دکمه «تولید» را می‌فشارید، صفحه از مرورگر می‌خواهد مقادیر تصادفی را از طریق crypto.getRandomValues دریافت کند و از آن‌ها برای انتخاب موقعیت‌ها در فهرست شما استفاده می‌کند، به جای اینکه به تابع شبه‌تصادفی Math.random() در JavaScript متکی باشد. تبدیل یک مقدار خام ۳۲-بیتی به یک موقعیت، همان جایی است که ابزارهای انتخاب‌گر معمولاً در سکوت اشتباه می‌کنند: تقسیم مقدار بر طول فهرست و گرفتن باقیمانده (پیمانه) بدیهی‌ترین رویکرد است، اما در عین حال رویکردی سوگیرانه است. دلیل آن این است که مگر در حالتی که 2^32 دقیقاً بر طول فهرست بخش‌پذیر باشد، مواردی که در ابتدای فهرست قرار دارند کمی بیشتر از بقیه انتخاب می‌شوند. این نقص modulo bias (سوگیری پیمانه‌ای) نامیده می‌شود و کاملاً قابل اندازه‌گیری است، نه صرفاً تئوری. در مقابل، این ابزار هر مقداری را که از بزرگترین مضرب دقیق طول فهرست فراتر رود دور می‌ریزد و دوباره قرعه‌کشی می‌کند — تکنیکی که به آن rejection sampling (نمونه‌برداری با رد کردن) می‌گویند. این روش به قیمت چند قرعه‌کشی اضافی در پس‌زمینه تمام می‌شود، اما به جای یک تضمین تقریبی، یک تضمین دقیق ارائه می‌دهد. موقعیت در فهرست هیچ‌چیز را تغییر نمی‌دهد: اولین مورد و آخرین مورد در هر قرعه‌کشی احتمال کاملاً یکسانی دارند.

کلید «بدون تکرار» دو نوع قرعه‌کشی کاملاً متفاوت را از هم جدا می‌کند و در آمار برای هر کدام یک نام وجود دارد. وقتی این گزینه روشن باشد، ابزار یک کپی از فهرست شما را با الگوریتم Fisher-Yates به هم می‌ریزد و موارد را از بالا برمی‌دارد — دقیقاً مانند بیرون کشیدن نام‌ها از یک کلاه بدون برگرداندن آن‌ها، بنابراین هیچ‌کس دو بار انتخاب نمی‌شود و شانس انتخاب برای هر گروهی با آن اندازه کاملاً برابر است. به این روش نمونه‌برداری بدون جایگذاری (sampling without replacement) می‌گویند و دقیقاً همان چیزی است که برای برندگان جوایز، تشکیل تیم‌ها و تعیین نوبت به آن نیاز دارید. وقتی این گزینه خاموش باشد، هر انتخاب به‌طور مستقل از کل فهرست انجام می‌شود، بنابراین یک مورد مشابه می‌تواند بیش از یک بار ظاهر شود — این روش نمونه‌برداری با جایگذاری (sampling with replacement) است که زمانی کاربرد دارد که همه در هر دور همچنان واجد شرایط باقی می‌مانند، مانند قرعه‌کشی‌های متوالی یا یک نمونه‌گیری آماری سریع. هیچ‌یک از این دو حالت عادلانه‌تر از دیگری نیستند؛ آن‌ها فقط به نیازهای متفاوتی پاسخ می‌دهند.

یک قرعه‌کشی عادلانه قرار نیست ظاهری عادلانه داشته باشد. اگر پنج نام را از بین ده نام بیرون بکشید، به احتمال زیاد دو انتخابی را می‌بینید که در فهرست اولیه کنار هم قرار داشته‌اند، یا اگر تکرار مجاز باشد یک نام دو بار پشت سر هم ظاهر می‌شود — و هر یک از این اتفاقات کاملاً عادی است. هر قرعه‌کشی مستقل است: انتخاب‌های قبلی هیچ تأثیری بر انتخاب‌های بعدی ندارند و هیچ موردی صرفاً به این دلیل که زمان زیادی گذشته است «موعد» پیروزی‌اش فرا نمی‌رسد. غریزه‌ای که بر خلاف این موضوع اصرار دارد، مغالطه قمارباز (gambler's fallacy) نامیده می‌شود و همان غریزه‌ای است که باعث می‌شود خود ما انسان‌ها در انتخاب‌های تصادفی ضعیف عمل کنیم — وقتی از ما خواسته می‌شود به‌صورت تصادفی انتخاب کنیم، از انتخاب اولین و آخرین مورد پرهیز می‌کنیم، سعی می‌کنیم نامی را تکرار نکنیم و انتخاب‌هایمان را بسیار یکنواخت‌تر از آنچه شانس واقعی رقم می‌زند توزیع می‌کنیم. نتیجه‌ای که به‌طور مشکوکی منظم و مرتب به نظر می‌رسد، اثر انگشت انسان است؛ تصادفی بودن واقعی باعث ایجاد خوشه‌ها و تراکم‌ها می‌شود.

چرا باید از این ابزار انتخاب تصادفی استفاده کنید؟

انتخاب تصادفی در هر جایی که یک تصمیم باید در برابر شک و پرسش مقاوم باشد، کاربرد پیدا می‌کند. معلمان بدون هیچ‌گونه تبعیضی از دانش‌آموزان درس می‌پرسند و کلاس را به گروه‌های پروژه تقسیم می‌کنند. استریمرها و بازاریاب‌ها برندگان جوایز و قرعه‌کشی‌ها را در مقابل مخاطبانی انتخاب می‌کنند که باید نتیجه را باور کنند. مدیران وظایفی را که هیچ‌کس داوطلب انجامشان نیست تقسیم می‌کنند و تیم‌ها نوبت ارائه‌ها یا کشیک‌ها را مشخص می‌کنند. پژوهشگران یک نمونه تصادفی از سوابق را برای ممیزی استخراج می‌کنند. در ایام نوروز نوبت بازی‌های خانوادگی با قرعه تعیین می‌شود، خانواده‌ها به بحث درباره اینکه چه برنامه‌ای تماشا کنند پایان می‌دهند و یک گروه گرسنه رستوران را انتخاب می‌کنند. وجه مشترک همه این‌ها انتخابی است که هر کسی می‌تواند بعداً آن را توضیح دهد: این قرعه‌کشی از تصادفی بودن رمزنگاری‌شده استفاده می‌کند، کاملاً در دستگاه شما اتفاق می‌افتد، و اگر کسی بعداً در مورد آن سوالی بپرسد، بخش «تاریخچه» نتیجه را حفظ کرده است.

دانستن چند محدودیت صادقانه این ابزار خالی از لطف نیست. ابزار نمی‌تواند موارد متمایز بیشتری از آنچه در فهرست شما وجود دارد استخراج کند — سه برنده حداقل به سه نام نیاز دارند — و محدودیت آن ۱۰۰۰ ورودی با حداکثر ۲۰۰ نویسه برای هر کدام است، با قابلیت تا ۱۰۰ انتخاب در یک قرعه‌کشی. دکمه‌های «مخلوط کردن» و «مرتب سازی» خط به خط کار می‌کنند، بنابراین فهرستی که با کاما جدا شده و فقط در یک خط قرار دارد تنها زمانی تغییر چینش می‌دهد که به هر ورودی در یک خط تبدیل شود؛ هر دوی آن‌ها کادر را دوباره می‌چینند و نه خود قرعه‌کشی را، که صرف نظر از ترتیب ورودی‌های شما به یک اندازه عادلانه است. همچنین بر اساس طراحی، هر مورد وزن و شانس کاملاً یکسانی دارد، بنابراین در قرعه‌کشی‌ای که یک نام باید دو برابر شانس داشته باشد، لازم است آن نام را دو بار در فهرست بنویسید. در چارچوب این محدودیت‌ها، تضمین ارائه‌شده محکم است — هر مورد در فهرست شما شانس کاملاً یکسانی در هر قرعه‌کشی دارد.

FAQ

چگونه می‌توانم یک نام تصادفی را از یک فهرست انتخاب کنم؟

نام‌ها را در کادر «موارد» وارد کنید — هر کدام در یک خط جدید، یا جدا شده با کاما یا فاصله — کادر «تعداد» را روی ۱ بگذارید و دکمه «تولید» را بزنید. بلافاصله یک نام به صورت تصادفی انتخاب می‌شود. برای انتخاب همزمان چندین نام، فیلد «تعداد» را به مقدار مورد نیاز افزایش دهید.

آیا این انتخاب واقعاً عادلانه است؟

بله. هر قرعه‌کشی از Web Crypto API مرورگر شما (crypto.getRandomValues) به همراه تکنیک rejection sampling (نمونه‌برداری با رد کردن) استفاده می‌کند که سوگیری پیمانه‌ای موجود در پیاده‌سازی‌های ساده‌انگارانه را از بین می‌برد. هر ورودی صرف نظر از موقعیتش در فهرست، دقیقاً شانس برابری دارد، و برای بیرون کشیدن چندین نام متمایز از الگوریتم بر هم زدن Fisher-Yates استفاده می‌شود، بنابراین هر گروه با آن اندازه نیز دقیقاً احتمال برابری دارد.

آیا فهرست من در سرور شما آپلود می‌شود؟

خیر. کل فرایند قرعه‌کشی به‌صورت محلی در مرورگر شما اجرا می‌شود: فهرست، انتخاب‌ها و تاریخچه هرگز از دستگاه شما خارج نمی‌شوند، بنابراین وارد کردن نام‌ها، ایمیل‌ها یا هر فهرست خصوصی کاملاً امن است. قابلیت «بارگیری از فایل» نیز محلی است — خود مرورگر فایل را می‌خواند و هیچ چیزی آپلود نمی‌شود.

آیا می‌توانم فهرستی را که با کاما یا فاصله جدا شده است به جای هر مورد در یک خط وارد کنم؟

بله. گزینه «جداکننده» روی «خودکار» تنظیم شده است، که خودش تفاوت بین خطوط جدید و کاماها را تشخیص می‌دهد؛ بنابراین فهرستی که از یک صفحه گسترده، پیام چت یا سند متنی کپی شده به همان شکل کار می‌کند. فهرستی که با فاصله جدا شده نیاز به یک گام اضافی دارد — تنظیم «جداکننده» روی «فاصله» — زیرا مواردی مانند نام‌های کامل، خودشان دارای فاصله هستند و هرگز به‌طور خودکار از این طریق جدا نمی‌شوند. اگر داده‌های شما فرمت‌های ترکیبی دارد، «جداکننده» را روی «خط جدید» یا «کاما» قفل کنید.

کلید «بدون تکرار» چه کاری انجام می‌دهد؟

با روشن بودن «بدون تکرار»، هر موردی که قرعه‌کشی می‌شود متفاوت است — مانند بیرون کشیدن برگه‌ها از یک کلاه بدون بازگرداندن آن‌ها، که دقیقاً همان چیزی است که برای تعیین برندگان جوایز یا تیم‌ها می‌خواهید. در صورت خاموش بودن آن، یک مورد یکسان می‌تواند بیش از یک بار انتخاب شود، که آمارگیران به آن نمونه‌گیری با جایگذاری می‌گویند.

چرا گزینه‌های «بدون تکرار» و «قالب خروجی» غیرفعال و خاکستری هستند؟

زیرا هر دو تنها زمانی کاربرد دارند که شما بیش از یک مورد را استخراج کنید، همانطور که راهنمای کنار آن‌ها می‌گوید: «فقط زمانی اعمال می‌شود که تعداد بیشتر از ۱ باشد». عدد «تعداد» را به ۲ یا بالاتر افزایش دهید تا هر دو در دسترس قرار گیرند؛ در تعداد ۱ هیچ چیزی برای تکرار یا جدا کردن وجود ندارد.

گزینه «قالب خروجی» چه کاربردی دارد؟

این گزینه مشخص می‌کند که چندین انتخاب چگونه نمایش داده شده و کپی می‌شوند: «هر کدام در یک خط جدید»، «جدا شده با فاصله» برای یک پیام چت سریع، یا «جدا شده با کاما» برای جای‌گذاری در یک صفحه گسترده یا اسکریپت. این گزینه زمانی که «تعداد» ۲ یا بیشتر باشد در دسترس قرار می‌گیرد.

دکمه‌های «مخلوط کردن» و «مرتب سازی» چه کاری انجام می‌دهند؟

دکمه «مخلوط کردن» ترتیب موارد را در داخل کادر «موارد» به‌هم می‌ریزد، و «مرتب سازی» آن‌ها را به ترتیب حروف الفبا با اعداد مرتب شده به صورت طبیعی تنظیم می‌کند — کلیک مجدد روی آن، ترتیب را برعکس می‌کند. هر دو دکمه فقط نحوه نوشتن فهرست شما را تغییر می‌دهند، نه نحوه انجام قرعه‌کشی را: ابزار انتخاب، فارغ از ترتیب موارد، به یک اندازه عادلانه عمل می‌کند.

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

فهرست شما از ۲ تا ۱۰۰۰ مورد را در خود جای می‌دهد، که هر کدام تا ۲۰۰ نویسه طول دارند و یک قرعه‌کشی می‌تواند تا ۱۰۰ انتخاب را برگرداند. خطوط خالی و فاصله‌های اضافی اطراف نادیده گرفته می‌شوند، بنابراین فهرستی که از یک سند یا اکسل کپی می‌شود به همان صورت بدون مشکل کار می‌کند.

آیا این ابزار برای انتخاب برندگان قرعه‌کشی و هدایا مناسب است؟

بله، و این یکی از رایج‌ترین کاربردهای آن است. شرکت‌کنندگان را وارد کنید، «تعداد» را روی تعداد جوایز تنظیم کنید، گزینه «بدون تکرار» را روشن نگه دارید تا کسی دو بار برنده نشود و دکمه «تولید» را بزنید. از آنجا که قرعه‌کشی از تصادفی بودن امن از نظر رمزنگاری استفاده می‌کند و کاملاً در دستگاه شما اجرا می‌شود، توضیح فرایند آن آسان است و اگر بعداً شرکت‌کننده‌ای به نتیجه شک کرد، «تاریخچه» نتیجه را نگه می‌دارد.

آیا می‌توانم از آن برای گروه‌بندی افراد به تیم‌های مختلف استفاده کنم؟

بله. فیلد «تعداد» را روی اندازه تیم اول تنظیم کنید و «تولید» را بزنید — نام‌های استخراج‌شده تیم اول هستند. آن‌ها را از فهرست حذف کرده و برای تیم بعدی تکرار کنید. گزینه «بدون تکرار» را روشن نگه دارید تا هیچ‌کس به‌طور همزمان در دو تیم قرار نگیرد.

چرا یک نام دقیقاً دو بار پشت سر هم ظاهر شد؟

زیرا قرعه‌کشی‌های مستقل می‌توانند تکرار شوند و این دقیقاً ماهیت رویدادهای تصادفی است. هر قرعه‌کشی تمام قرعه‌کشی‌های قبل از خود را نادیده می‌گیرد، بنابراین در فهرستی از ده نام، ظاهر شدن یک نام ثابت دو بار پشت سر هم، در هر بار دقیقاً ۱ در ۱۰ شانس دارد — این یک اتفاق عادی است و خرابی ابزار نیست. اگر نیاز دارید که هر انتخاب در یک دور قرعه‌کشی متفاوت باشد، «بدون تکرار» را روشن کنید.

آیا ابزار انتخاب‌گر نتایج من را به یاد می‌آورد و آیا رایگان است؟

تب «تاریخچه» ۱۰ قرعه‌کشی اخیر شما را در مرورگر خودتان نگه می‌دارد، تا بتوانید یک نتیجه قبلی را بازیابی، کپی یا حذف کنید و هر زمان که خواستید همه آن‌ها را پاک کنید. این ابزار کاملاً رایگان است و نیازی به ثبت‌نام ندارد و چون هیچ چیزی منتقل نمی‌شود، حتی اگر بخواهیم هم نمی‌توانیم انتخاب‌های شما را ببینیم یا ذخیره کنیم.