ਕੀ ਤੁਹਾਨੂੰ ਕਿਸੇ ਇਨਾਮ ਦੇ ਜੇਤੂ ਦਾ ਡਰਾਅ ਕੱਢਣ, ਕਿਸੇ ਵਿਦਿਆਰਥੀ ਨੂੰ ਬੁਲਾਉਣ, ਜਾਂ ਇਹ ਤੈਅ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਕਿ ਭਾਂਡੇ ਕੌਣ ਧੋਵੇਗਾ? ਇਹ ਮੁਫ਼ਤ ਔਨਲਾਈਨ ਰੈਂਡਮ ਪਿਕਰ ਤੁਹਾਡੇ ਵੱਲੋਂ ਪੇਸਟ ਕੀਤੀ ਗਈ ਕਿਸੇ ਵੀ ਸੂਚੀ ਵਿੱਚੋਂ ਨਿਰਪੱਖਤਾ ਨਾਲ ਚੁਣਦਾ ਹੈ। ਆਪਣੀਆਂ ਐਂਟਰੀਆਂ ਨੂੰ 'ਆਈਟਮਾਂ' ਬਾਕਸ ਵਿੱਚ ਪਾਓ — ਹਰੇਕ ਨਵੀਂ ਲਾਈਨ ਉੱਤੇ, ਜਾਂ ਕਾਮਿਆਂ ਨਾਲ ਵੱਖ ਕਰਕੇ — 'ਚੋਣਾਂ ਦੀ ਗਿਣਤੀ' ਨਾਲ ਆਪਣੀ ਲੋੜੀਂਦੀ ਗਿਣਤੀ ਸੈੱਟ ਕਰੋ, ਅਤੇ 'ਜਨਰੇਟ ਕਰੋ' ਦਬਾਓ। ਇੱਕ ਸੂਚੀ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਦੋ ਐਂਟਰੀਆਂ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ ਅਤੇ ਇਹ 1000 ਐਂਟਰੀਆਂ ਤੱਕ ਰੱਖ ਸਕਦੀ ਹੈ, ਜਿਸ ਵਿੱਚ ਹਰੇਕ ਐਂਟਰੀ ਵੱਧ ਤੋਂ ਵੱਧ 200 ਅੱਖਰਾਂ ਤੱਕ ਦੀ ਹੋ ਸਕਦੀ ਹੈ।
ਹਰੇਕ ਚੋਣ ਸਿੱਧੇ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ Web Crypto API (crypto.getRandomValues) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜੋ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਅੰਦਰੂਨੀ ਸਿਸਟਮ ਦੀ ਬੇਤਰਤੀਬਤਾ ਤੋਂ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਤੌਰ ਉੱਤੇ ਮਜ਼ਬੂਤ ਬੇਤਰਤੀਬੇ ਮੁੱਲ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਤੁਹਾਡੀ ਸੂਚੀ ਕਦੇ ਵੀ ਕਿਸੇ ਸਰਵਰ ਉੱਤੇ ਨਹੀਂ ਭੇਜੀ ਜਾਂਦੀ, ਕਦੇ ਲੌਗ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ, ਅਤੇ ਸਾਡੇ ਵੱਲੋਂ ਕਦੇ ਨਹੀਂ ਦੇਖੀ ਜਾਂਦੀ — ਅਤੇ ਇਹ ਗੱਲ ਜ਼ਿਆਦਾਤਰ ਜਨਰੇਟਰਾਂ ਦੇ ਮੁਕਾਬਲੇ ਇੱਥੇ ਵਧੇਰੇ ਮਹੱਤਵ ਰੱਖਦੀ ਹੈ, ਕਿਉਂਕਿ ਲੋਕ ਆਮ ਤੌਰ ਉੱਤੇ ਗਾਹਕਾਂ ਦੀ ਸੂਚੀ, ਕਲਾਸ ਦਾ ਰਜਿਸਟਰ, ਜਾਂ ਆਪਣੇ ਸਾਥੀਆਂ ਦੇ ਨਾਮ ਪੇਸਟ ਕਰਦੇ ਹਨ। 'ਫਾਈਲ ਤੋਂ ਲੋਡ ਕਰੋ' ਬਟਨ ਵੀ ਇਹੀ ਵਾਅਦਾ ਕਰਦਾ ਹੈ: ਤੁਹਾਡਾ ਬ੍ਰਾਊਜ਼ਰ ਫਾਈਲ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਬਾਕਸ ਨੂੰ ਸਥਾਨਕ ਤੌਰ ਉੱਤੇ ਭਰਦਾ ਹੈ, ਅਤੇ ਕੁਝ ਵੀ ਕਿਤੇ ਵੀ ਅੱਪਲੋਡ ਨਹੀਂ ਹੁੰਦਾ।
ਇਸਦੇ ਵਿਕਲਪ ਉਨ੍ਹਾਂ ਸੂਚੀਆਂ ਲਈ ਬਣਾਏ ਗਏ ਹਨ ਜੋ ਲੋਕਾਂ ਕੋਲ ਅਸਲ ਵਿੱਚ ਹੁੰਦੀਆਂ ਹਨ। 'ਆਈਟਮ ਵਿਭਾਜਕ' ਪਹਿਲਾਂ ਤੋਂ ਹੀ 'ਆਟੋਮੈਟਿਕ ਖੋਜ' ਉੱਤੇ ਸੈੱਟ ਹੁੰਦਾ ਹੈ, ਜੋ ਨਵੀਆਂ ਲਾਈਨਾਂ ਅਤੇ ਕਾਮਿਆਂ ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਇਹ ਪਤਾ ਲਗਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡੀ ਸੂਚੀ ਦੋਵਾਂ ਵਿੱਚੋਂ ਕਿਹੜਾ ਵਿਭਾਜਕ ਵਰਤਦੀ ਹੈ, ਇਸ ਲਈ ਕਿਸੇ ਸਪ੍ਰੈਡਸ਼ੀਟ, ਚੈਟ ਸੰਦੇਸ਼ ਜਾਂ ਦਸਤਾਵੇਜ਼ ਵਿੱਚੋਂ ਕਾਪੀ ਕੀਤੀ ਗਈ ਸੂਚੀ ਬਿਨਾਂ ਦੁਬਾਰਾ ਫਾਰਮੈਟ ਕੀਤੇ ਕੰਮ ਕਰਦੀ ਹੈ। ਜਦੋਂ ਤੁਹਾਡੇ ਡੇਟਾ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਫਾਰਮੈਟ ਰਲੇ ਹੋਏ ਹੋਣ, ਤਾਂ ਇਸਨੂੰ 'ਨਵੀਂ ਲਾਈਨ', 'ਕਾਮਾ' ਜਾਂ 'ਸਪੇਸ' ਉੱਤੇ ਲਾਕ ਕਰੋ — ਅਤੇ ਧਿਆਨ ਦਿਓ ਕਿ 'ਸਪੇਸ' ਹਮੇਸ਼ਾ ਜਾਣਬੁੱਝ ਕੇ ਕੀਤੀ ਗਈ ਚੋਣ ਹੁੰਦੀ ਹੈ ਅਤੇ ਇਹ ਕਦੇ ਵੀ ਆਟੋਮੈਟਿਕ ਨਹੀਂ ਹੁੰਦੀ, ਕਿਉਂਕਿ ਪੂਰੇ ਨਾਵਾਂ ਵਰਗੀਆਂ ਐਂਟਰੀਆਂ ਵਿੱਚ ਆਪਣੀਆਂ ਖੁਦ ਦੀਆਂ ਸਪੇਸਾਂ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ ਉਨ੍ਹਾਂ ਨੂੰ ਤੋੜਨ ਨਾਲ ਸੂਚੀਆਂ ਠੀਕ ਹੋਣ ਦੀ ਬਜਾਏ ਜ਼ਿਆਦਾ ਖਰਾਬ ਹੋ ਜਾਣਗੀਆਂ। 'ਚੋਣਾਂ ਦੀ ਗਿਣਤੀ' ਇਹ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ 1 ਤੋਂ 100 ਤੱਕ ਕਿੰਨੀਆਂ ਐਂਟਰੀਆਂ ਕੱਢਣੀਆਂ ਹਨ। 200 ਪ੍ਰਤੀਯੋਗੀਆਂ ਵਿੱਚੋਂ ਤਿੰਨ ਇਨਾਮ ਜੇਤੂਆਂ ਦਾ ਡਰਾਅ ਕੱਢਣਾ ਹੈ? ਪ੍ਰਤੀਯੋਗੀਆਂ ਦੇ ਨਾਮ ਪੇਸਟ ਕਰੋ, 'ਚੋਣਾਂ ਦੀ ਗਿਣਤੀ' ਨੂੰ 3 ਉੱਤੇ ਸੈੱਟ ਕਰੋ, ਅਤੇ 'ਜਨਰੇਟ ਕਰੋ' ਦਬਾਓ। ਦੋ ਕੰਟਰੋਲ ਸਿਰਫ਼ ਉਦੋਂ ਲਾਗੂ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਚੋਣਾਂ ਦੀ ਗਿਣਤੀ 2 ਜਾਂ ਇਸ ਤੋਂ ਵੱਧ ਹੁੰਦੀ ਹੈ ਅਤੇ ਉਦੋਂ ਤੱਕ ਉਹ ਧੁੰਦਲੇ ਰਹਿੰਦੇ ਹਨ: 'ਦੁਹਰਾਓ ਤੋਂ ਬਚੋ', ਜੋ ਇਹ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਇੱਕ ਹੀ ਐਂਟਰੀ ਨੂੰ ਦੋ ਵਾਰ ਕੱਢਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ 'ਆਉਟਪੁੱਟ ਫਾਰਮੈਟ', ਜੋ ਇਹ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਚੋਣਾਂ ਨੂੰ ਕਿਵੇਂ ਵੱਖ ਕੀਤਾ ਜਾਵੇ — 'ਹਰੇਕ ਨਵੀਂ ਲਾਈਨ 'ਤੇ', 'ਸਪੇਸ ਨਾਲ ਵੱਖ', ਜਾਂ 'ਕਾਮੇ ਨਾਲ ਵੱਖ'।
'ਆਈਟਮਾਂ' ਬਾਕਸ ਦੇ ਅੰਦਰ ਬਟਨਾਂ ਦੀ ਇੱਕ ਕਤਾਰ ਉਹ ਐਡੀਟਿੰਗ ਕਰਦੀ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਨਹੀਂ ਤਾਂ ਕਿਤੇ ਹੋਰ ਕਰਨੀ ਪੈਣੀ ਸੀ। 'ਫਾਈਲ ਤੋਂ ਲੋਡ ਕਰੋ' ਕਿਸੇ ਪਲੇਨ-ਟੈਕਸਟ ਜਾਂ CSV ਫਾਈਲ ਵਿੱਚੋਂ ਸਿੱਧੀ ਸੂਚੀ ਖਿੱਚ ਲਿਆਉਂਦਾ ਹੈ। 'ਰਲਾਓ' ਬਾਕਸ ਵਿੱਚ ਐਂਟਰੀਆਂ ਦੀ ਤਰਤੀਬ ਬਦਲ ਦਿੰਦਾ ਹੈ, 'ਕ੍ਰਮਬੱਧ ਕਰੋ' ਉਹਨਾਂ ਨੂੰ ਵਰਣਮਾਲਾ ਅਤੇ ਨੰਬਰਾਂ ਦੇ ਕੁਦਰਤੀ ਕ੍ਰਮ ਵਿੱਚ ਲਗਾਉਂਦਾ ਹੈ ਅਤੇ ਇਸ ਉੱਤੇ ਦੁਬਾਰਾ ਕਲਿੱਕ ਕਰਨ ਨਾਲ ਇਹ ਤਰਤੀਬ ਉਲਟ ਜਾਂਦੀ ਹੈ, ਅਤੇ 'ਸਾਫ਼ ਕਰੋ' ਬਾਕਸ ਨੂੰ ਖਾਲੀ ਕਰ ਦਿੰਦਾ ਹੈ। 'ਨਮੂਨਾ ਡੇਟਾ ਭਰੋ' ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਉਦਾਹਰਣ ਵਾਲੀ ਸੂਚੀ ਪਾ ਦਿੰਦਾ ਹੈ ਤਾਂ ਜੋ ਤੁਸੀਂ ਇੱਕ ਕਲਿੱਕ ਨਾਲ ਟੂਲ ਨੂੰ ਅਜ਼ਮਾ ਸਕੋ, ਜਦਕਿ 'ਵੱਡਾ ਕਰੋ' ਇੱਕ ਲੰਬੀ ਸੂਚੀ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਦਿਖਾਉਣ ਲਈ ਬਾਕਸ ਨੂੰ ਖੋਲ੍ਹਦਾ ਹੈ ਅਤੇ 'ਛੋਟਾ ਕਰੋ' ਇਸਨੂੰ ਵਾਪਸ ਇਸਦੇ ਆਮ ਆਕਾਰ ਵਿੱਚ ਸਮੇਟ ਦਿੰਦਾ ਹੈ। ਨਤੀਜੇ ਦੇ ਹੇਠਾਂ, 'ਸਭ ਕਾਪੀ ਕਰੋ' ਹਰੇਕ ਚੋਣ ਨੂੰ ਤੁਹਾਡੇ ਕਲਿੱਪਬੋਰਡ ਉੱਤੇ ਰੱਖ ਦਿੰਦਾ ਹੈ, 'ਫਾਈਲ ਵਿੱਚ ਸੰਭਾਲੋ' ਉਹਨਾਂ ਨੂੰ ਲਿਖ ਕੇ ਸੇਵ ਕਰਦਾ ਹੈ, ਅਤੇ 'ਹਿਸਟਰੀ' ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਤੁਹਾਡੇ ਪਿਛਲੇ 10 ਡਰਾਅ ਸੰਭਾਲ ਕੇ ਰੱਖਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਪੁਰਾਣਾ ਨਤੀਜਾ ਸਿਰਫ਼ ਇੱਕ ਕਲਿੱਕ ਦੀ ਦੂਰੀ ਉੱਤੇ ਹੁੰਦਾ ਹੈ।
ਚੋਣ ਅਸਲ ਵਿੱਚ ਕਿਵੇਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ? ਜਦੋਂ ਤੁਸੀਂ 'ਜਨਰੇਟ ਕਰੋ' ਦਬਾਉਂਦੇ ਹੋ, ਤਾਂ ਪੇਜ crypto.getRandomValues ਰਾਹੀਂ ਬ੍ਰਾਊਜ਼ਰ ਤੋਂ ਬੇਤਰਤੀਬੇ ਮੁੱਲ ਮੰਗਦਾ ਹੈ ਅਤੇ Math.random() ਵਰਗੇ JavaScript ਸੂਡੋ-ਰੈਂਡਮ ਫੰਕਸ਼ਨ ਰਾਹੀਂ ਜਾਣ ਦੀ ਬਜਾਏ, ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਤੁਹਾਡੀ ਸੂਚੀ ਵਿੱਚ ਸਥਿਤੀਆਂ ਚੁਣਨ ਲਈ ਕਰਦਾ ਹੈ। ਇੱਕ ਕੱਚੇ 32-ਬਿੱਟ ਮੁੱਲ ਨੂੰ ਸਥਿਤੀ ਵਿੱਚ ਬਦਲਣਾ ਉਹ ਜਗ੍ਹਾ ਹੈ ਜਿੱਥੇ ਪਿਕਰ ਚੁੱਪ-ਚਾਪ ਗਲਤੀ ਕਰ ਜਾਂਦੇ ਹਨ: ਸੂਚੀ ਦੀ ਲੰਬਾਈ ਦੇ ਮੋਡਿਊਲੋ ਅਨੁਸਾਰ ਮੁੱਲ ਲੈਣਾ ਸਭ ਤੋਂ ਆਮ ਪਹੁੰਚ ਹੈ ਅਤੇ ਇਹ ਪੱਖਪਾਤੀ ਵੀ ਹੈ, ਕਿਉਂਕਿ ਜਦੋਂ ਤੱਕ 2^32 ਨੂੰ ਸੂਚੀ ਦੀ ਲੰਬਾਈ ਨਾਲ ਪੂਰਾ-ਪੂਰਾ ਨਹੀਂ ਵੰਡਿਆ ਜਾਂਦਾ, ਸੂਚੀ ਦੇ ਸ਼ੁਰੂ ਦੇ ਨੇੜੇ ਵਾਲੀਆਂ ਐਂਟਰੀਆਂ ਬਾਕੀਆਂ ਨਾਲੋਂ ਥੋੜ੍ਹੀਆਂ ਵੱਧ ਵਾਰ ਸਾਹਮਣੇ ਆਉਂਦੀਆਂ ਹਨ। ਇਸ ਖਾਮੀ ਨੂੰ modulo bias ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਇਹ ਸਿਰਫ਼ ਸਿਧਾਂਤਕ ਨਹੀਂ ਬਲਕਿ ਮਾਪੀ ਜਾ ਸਕਣ ਵਾਲੀ ਚੀਜ਼ ਹੈ। ਇਸਦੇ ਬਜਾਏ, ਇਹ ਪਿਕਰ ਸੂਚੀ ਦੀ ਲੰਬਾਈ ਦੇ ਸਭ ਤੋਂ ਵੱਡੇ ਸਟੀਕ ਗੁਣਜ ਤੋਂ ਵੱਧ ਕਿਸੇ ਵੀ ਮੁੱਲ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ ਅਤੇ ਦੁਬਾਰਾ ਡਰਾਅ ਕਰਦਾ ਹੈ — ਇਸ ਤਕਨੀਕ ਨੂੰ rejection sampling ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਇਸ ਵਿੱਚ ਕੁਝ ਵਾਧੂ ਡਰਾਅ ਲੱਗਦੇ ਹਨ ਪਰ ਇਹ ਇੱਕ ਅੰਦਾਜ਼ੇ ਦੀ ਬਜਾਏ ਇੱਕ ਸਟੀਕ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ। ਸੂਚੀ ਵਿੱਚਲੀ ਸਥਿਤੀ ਨਾਲ ਕੋਈ ਫਰਕ ਨਹੀਂ ਪੈਂਦਾ: ਪਹਿਲੀ ਅਤੇ ਆਖਰੀ ਐਂਟਰੀ ਹਰ ਡਰਾਅ ਉੱਤੇ ਬਿਲਕੁਲ ਬਰਾਬਰ ਸੰਭਾਵਨਾ ਰੱਖਦੀਆਂ ਹਨ।
'ਦੁਹਰਾਓ ਤੋਂ ਬਚੋ' ਦੋ ਬਿਲਕੁਲ ਵੱਖ-ਵੱਖ ਕਿਸਮਾਂ ਦੇ ਡਰਾਅ ਨੂੰ ਵੱਖਰਾ ਕਰਦਾ ਹੈ, ਅਤੇ ਅੰਕੜਾ ਵਿਗਿਆਨ ਵਿੱਚ ਇਹਨਾਂ ਦੋਵਾਂ ਲਈ ਇੱਕ ਨਾਮ ਹੈ। ਇਸਦੇ ਚਾਲੂ ਹੋਣ ਉੱਤੇ, ਪਿਕਰ Fisher-Yates ਐਲਗੋਰਿਦਮ ਨਾਲ ਤੁਹਾਡੀ ਸੂਚੀ ਦੀ ਇੱਕ ਕਾਪੀ ਨੂੰ ਰਲਾਉਂਦਾ ਹੈ ਅਤੇ ਉੱਪਰੋਂ ਐਂਟਰੀਆਂ ਨੂੰ ਚੁੱਕਦਾ ਹੈ — ਇਹ ਬਿਲਕੁਲ ਉਸੇ ਤਰ੍ਹਾਂ ਹੈ ਜਿਵੇਂ ਇੱਕ ਡੱਬੇ ਵਿੱਚੋਂ ਪਰਚੀਆਂ ਕੱਢਣਾ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਵਾਪਸ ਨਾ ਪਾਉਣਾ, ਤਾਂ ਜੋ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਦੋ ਵਾਰ ਨਾ ਚੁਣਿਆ ਜਾਵੇ ਅਤੇ ਉਸ ਆਕਾਰ ਦੇ ਹਰੇਕ ਗਰੁੱਪ ਦੀ ਸੰਭਾਵਨਾ ਬਰਾਬਰ ਹੋਵੇ। ਇਸਨੂੰ sampling without replacement ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਇਨਾਮ ਜੇਤੂਆਂ, ਟੀਮਾਂ ਅਤੇ ਵਾਰੀ ਦੇ ਕ੍ਰਮ ਲਈ ਤੁਹਾਨੂੰ ਇਹੀ ਚਾਹੀਦਾ ਹੈ। ਇਸਦੇ ਬੰਦ ਹੋਣ ਉੱਤੇ, ਹਰੇਕ ਚੋਣ ਪੂਰੀ ਸੂਚੀ ਵਿੱਚੋਂ ਸੁਤੰਤਰ ਤੌਰ ਉੱਤੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਸ ਲਈ ਇੱਕੋ ਐਂਟਰੀ ਇੱਕ ਤੋਂ ਵੱਧ ਵਾਰ ਸਾਹਮਣੇ ਆ ਸਕਦੀ ਹੈ — ਇਸਨੂੰ sampling with replacement ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਜਿਸਦੀ ਤੁਹਾਨੂੰ ਉਦੋਂ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਹਰ ਕੋਈ ਹਰ ਰਾਊਂਡ ਵਿੱਚ ਯੋਗ ਰਹਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਵਾਰ-ਵਾਰ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਡਰਾਅ ਜਾਂ ਤੇਜ਼ ਅੰਕੜਾਗਤ ਨਮੂਨੇ ਵਿੱਚ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਮੋਡ ਦੂਜੇ ਨਾਲੋਂ ਵਧੇਰੇ ਨਿਰਪੱਖ ਨਹੀਂ ਹੈ; ਉਹ ਵੱਖ-ਵੱਖ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦਿੰਦੇ ਹਨ।
ਇੱਕ ਨਿਰਪੱਖ ਡਰਾਅ ਦਾ ਨਿਰਪੱਖ ਦਿਖਣਾ ਜ਼ਰੂਰੀ ਨਹੀਂ ਹੁੰਦਾ। ਦਸਾਂ ਵਿੱਚੋਂ ਪੰਜ ਨਾਮ ਕੱਢੋ ਅਤੇ ਤੁਸੀਂ ਨਿਯਮਿਤ ਤੌਰ ਉੱਤੇ ਅਜਿਹੀਆਂ ਦੋ ਚੋਣਾਂ ਦੇਖੋਗੇ ਜੋ ਅਸਲ ਸੂਚੀ ਵਿੱਚ ਇੱਕ ਦੂਜੇ ਦੇ ਨਾਲ-ਨਾਲ ਪਈਆਂ ਸਨ, ਜਾਂ ਦੁਹਰਾਓ ਦੀ ਇਜਾਜ਼ਤ ਹੋਣ ਉੱਤੇ ਇੱਕੋ ਨਾਮ ਲਗਾਤਾਰ ਦੋ ਵਾਰ ਦੇਖੋਗੇ, ਅਤੇ ਇਹਨਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਗੱਲ ਆਮ ਹੈ। ਹਰ ਇੱਕ ਡਰਾਅ ਸੁਤੰਤਰ ਹੁੰਦਾ ਹੈ: ਪਹਿਲਾਂ ਵਾਲੀਆਂ ਚੋਣਾਂ ਦਾ ਬਾਅਦ ਵਾਲੀਆਂ ਚੋਣਾਂ ਉੱਤੇ ਕੋਈ ਪ੍ਰਭਾਵ ਨਹੀਂ ਪੈਂਦਾ, ਅਤੇ ਕਿਸੇ ਦੀ ਵੀ ਜਿੱਤਣ ਲਈ ਕਦੇ ਕੋਈ 'ਪੱਕੀ ਵਾਰੀ' ਨਹੀਂ ਆਉਂਦੀ। ਇਸਦੇ ਉਲਟ ਜ਼ੋਰ ਪਾਉਣ ਵਾਲੀ ਪ੍ਰਵਿਰਤੀ ਨੂੰ gambler's fallacy ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਇਹ ਉਹੀ ਪ੍ਰਵਿਰਤੀ ਹੈ ਜੋ ਸਾਨੂੰ ਖੁਦ ਬੇਤਰਤੀਬ ਢੰਗ ਨਾਲ ਚੋਣ ਕਰਨ ਵਿੱਚ ਮਾੜਾ ਬਣਾਉਂਦੀ ਹੈ — ਜਦੋਂ ਸਾਨੂੰ ਬੇਤਰਤੀਬ ਢੰਗ ਨਾਲ ਚੁਣਨ ਲਈ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਅਸੀਂ ਪਹਿਲੀ ਅਤੇ ਆਖਰੀ ਐਂਟਰੀ ਤੋਂ ਬਚਦੇ ਹਾਂ, ਕਿਸੇ ਨਾਮ ਨੂੰ ਦੁਹਰਾਉਣ ਤੋਂ ਬਚਦੇ ਹਾਂ, ਅਤੇ ਆਪਣੀਆਂ ਚੋਣਾਂ ਨੂੰ ਇੰਨੇ ਬਰਾਬਰ ਢੰਗ ਨਾਲ ਵੰਡਦੇ ਹਾਂ ਜਿੰਨਾ ਕਿ ਕਿਸਮਤ ਕਦੇ ਨਹੀਂ ਕਰਦੀ। ਸ਼ੱਕੀ ਤੌਰ ਉੱਤੇ ਸਾਫ਼-ਸੁਥਰਾ ਦਿਖਣ ਵਾਲਾ ਨਤੀਜਾ ਇੱਕ ਇਨਸਾਨ ਦੀ ਛਾਪ ਹੁੰਦਾ ਹੈ; ਅਸਲ ਬੇਤਰਤੀਬਤਾ ਹਮੇਸ਼ਾ ਝੁੰਡ ਬਣਾਉਂਦੀ ਹੈ।
ਇਸ ਰੈਂਡਮ ਪਿਕਰ ਨੂੰ ਕਿਉਂ ਚੁਣੋ?
- ਸਿਰਫ਼-ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਚੋਣ: ਤੁਹਾਡੀ ਸੂਚੀ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਉੱਤੇ ਪੜ੍ਹੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਕਿਤੇ ਵੀ ਭੇਜੀ ਨਹੀਂ ਜਾਂਦੀ
- Web Crypto API ਬੇਤਰਤੀਬਤਾ: ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਤੌਰ ਉੱਤੇ ਸੁਰੱਖਿਅਤ, ਨਾ ਕਿ Math.random()
- ਕੋਈ modulo bias ਨਹੀਂ: rejection sampling ਹਰੇਕ ਐਂਟਰੀ ਦੀ ਸੰਭਾਵਨਾ ਨੂੰ ਬਰਾਬਰ ਰੱਖਦੀ ਹੈ
- ਸੂਚੀ ਦਾ ਕੋਈ ਵੀ ਫਾਰਮੈਟ: ਇੱਕ ਲਾਈਨ ਉੱਤੇ ਇੱਕ, ਕਾਮੇ ਰਾਹੀਂ, ਜਾਂ ਸਪੇਸ ਰਾਹੀਂ, ਬਿਨਾਂ ਦੁਬਾਰਾ ਫਾਰਮੈਟ ਕੀਤੇ
- 'ਦੁਹਰਾਓ ਤੋਂ ਬਚੋ' ਮੋਡ: ਜੇਤੂਆਂ ਜਾਂ ਟੀਮਾਂ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਚੁਣੋ ਕਿ ਕੋਈ ਵੀ ਦੋ ਵਾਰ ਨਾ ਚੁਣਿਆ ਜਾਵੇ
- 1000 ਤੱਕ ਐਂਟਰੀਆਂ, ਅਤੇ ਇੱਕ ਹੀ ਡਰਾਅ ਵਿੱਚ 100 ਤੱਕ ਚੋਣਾਂ
- ਇਨ-ਬਿਲਟ ਸੂਚੀ ਟੂਲ: ਫਾਈਲ ਤੋਂ ਲੋਡ ਕਰਨਾ, ਰਲਾਉਣਾ, ਕ੍ਰਮਬੱਧ ਕਰਨਾ, ਸਾਫ਼ ਕਰਨਾ, ਨਮੂਨਾ ਡੇਟਾ
- ਹਿਸਟਰੀ ਅਤੇ ਫਾਈਲ ਵਿੱਚ ਸੰਭਾਲੋ: ਉਸ ਡਰਾਅ ਦਾ ਰਿਕਾਰਡ ਰੱਖੋ ਜਿਸ ਨੂੰ ਸ਼ਾਇਦ ਤੁਹਾਨੂੰ ਬਾਅਦ ਵਿੱਚ ਸਾਬਤ ਕਰਨਾ ਪਵੇ
- ਅਸੀਮਤ ਅਤੇ ਮੁਫ਼ਤ: ਕੋਈ ਸਾਈਨ-ਅੱਪ ਨਹੀਂ, ਕੋਈ ਵਰਤੋਂ ਸੀਮਾ ਨਹੀਂ, ਸਾਡੇ ਸਰਵਰਾਂ ਉੱਤੇ ਕੁਝ ਵੀ ਨਹੀਂ
ਬੇਤਰਤੀਬ ਚੋਣ ਉੱਥੇ ਕੰਮ ਆਉਂਦੀ ਹੈ ਜਿੱਥੇ ਕਿਸੇ ਫੈਸਲੇ ਉੱਤੇ ਸਵਾਲ ਉਠਾਏ ਜਾਣ ਦੀ ਸੰਭਾਵਨਾ ਹੁੰਦੀ ਹੈ। ਅਧਿਆਪਕ ਬਿਨਾਂ ਪੱਖਪਾਤ ਕੀਤੇ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਬੁਲਾਉਂਦੇ ਹਨ ਅਤੇ ਕਲਾਸ ਨੂੰ ਪ੍ਰੋਜੈਕਟ ਗਰੁੱਪਾਂ ਵਿੱਚ ਵੰਡਦੇ ਹਨ। ਸਟ੍ਰੀਮਰ ਅਤੇ ਮਾਰਕੀਟਰ ਅਜਿਹੇ ਦਰਸ਼ਕਾਂ ਦੇ ਸਾਹਮਣੇ ਗਿਵਅਵੇਅ ਅਤੇ ਰੈਫਲ ਦੇ ਜੇਤੂ ਕੱਢਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਨਤੀਜੇ ਉੱਤੇ ਯਕੀਨ ਕਰਨਾ ਪੈਂਦਾ ਹੈ। ਮੈਨੇਜਰ ਉਹ ਕੰਮ ਵੰਡਦੇ ਹਨ ਜੋ ਕੋਈ ਵੀ ਆਪਣੀ ਮਰਜ਼ੀ ਨਾਲ ਨਹੀਂ ਕਰਨਾ ਚਾਹੁੰਦਾ, ਅਤੇ ਟੀਮਾਂ ਡੈਮੋ ਦਾ ਕ੍ਰਮ ਜਾਂ ਔਨ-ਕਾਲ ਡਿਊਟੀ ਤੈਅ ਕਰਦੀਆਂ ਹਨ। ਖੋਜਕਰਤਾ ਆਡਿਟ ਕਰਨ ਲਈ ਰਿਕਾਰਡਾਂ ਦਾ ਇੱਕ ਬੇਤਰਤੀਬ ਨਮੂਨਾ ਕੱਢਦੇ ਹਨ। ਪਰਿਵਾਰ ਇਹ ਬਹਿਸ ਸੁਲਝਾਉਂਦੇ ਹਨ ਕਿ ਕਿਹੜੀ ਫਿਲਮ ਦੇਖਣੀ ਹੈ, ਅਤੇ ਭੁੱਖੇ ਦੋਸਤ ਫੈਸਲਾ ਕਰਦੇ ਹਨ ਕਿ ਕਿਸ ਢਾਬੇ ਜਾਂ ਰੈਸਟੋਰੈਂਟ ਵਿੱਚ ਜਾਣਾ ਹੈ। ਇਹਨਾਂ ਸਭ ਵਿੱਚ ਸਾਂਝੀ ਗੱਲ ਇੱਕ ਅਜਿਹੀ ਚੋਣ ਹੈ ਜਿਸ ਬਾਰੇ ਕੋਈ ਵੀ ਬਾਅਦ ਵਿੱਚ ਸਮਝਾ ਸਕਦਾ ਹੈ: ਡਰਾਅ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਬੇਤਰਤੀਬਤਾ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਇਹ ਪੂਰੀ ਤਰ੍ਹਾਂ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਉੱਤੇ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਜੇਕਰ ਬਾਅਦ ਵਿੱਚ ਕੋਈ ਇਸ ਬਾਰੇ ਪੁੱਛਦਾ ਹੈ ਤਾਂ 'ਹਿਸਟਰੀ' ਨਤੀਜੇ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦੀ ਹੈ।
ਇਸ ਟੂਲ ਦੀਆਂ ਕੁਝ ਈਮਾਨਦਾਰ ਸੀਮਾਵਾਂ ਜਾਣਨ ਯੋਗ ਹਨ। ਪਿਕਰ ਤੁਹਾਡੀ ਸੂਚੀ ਵਿੱਚ ਮੌਜੂਦ ਐਂਟਰੀਆਂ ਦੀ ਗਿਣਤੀ ਤੋਂ ਵੱਧ ਵੱਖ-ਵੱਖ ਐਂਟਰੀਆਂ ਨਹੀਂ ਕੱਢ ਸਕਦਾ — ਤਿੰਨ ਜੇਤੂਆਂ ਲਈ ਘੱਟੋ-ਘੱਟ ਤਿੰਨ ਨਾਮਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ — ਅਤੇ ਇਹ 200 ਅੱਖਰਾਂ ਦੀਆਂ 1000 ਐਂਟਰੀਆਂ ਉੱਤੇ ਰੁਕ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਇੱਕ ਡਰਾਅ ਵਿੱਚ 100 ਤੱਕ ਚੋਣਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। 'ਰਲਾਓ' ਅਤੇ 'ਕ੍ਰਮਬੱਧ ਕਰੋ' ਲਾਈਨ ਦਰ ਲਾਈਨ ਕੰਮ ਕਰਦੇ ਹਨ, ਇਸ ਲਈ ਇੱਕ ਹੀ ਲਾਈਨ ਉੱਤੇ ਪੇਸਟ ਕੀਤੀ ਗਈ ਕਾਮੇ ਵਾਲੀ ਸੂਚੀ ਦੀ ਤਰਤੀਬ ਸਿਰਫ਼ ਉਦੋਂ ਹੀ ਬਦਲੀ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਹਰੇਕ ਲਾਈਨ ਉੱਤੇ ਇੱਕ ਐਂਟਰੀ ਹੋਵੇ; ਅਤੇ ਇਹ ਦੋਵੇਂ ਡਰਾਅ ਦੀ ਬਜਾਏ ਬਾਕਸ ਦੀ ਤਰਤੀਬ ਨੂੰ ਬਦਲਦੇ ਹਨ, ਅਤੇ ਡਰਾਅ ਬਿਲਕੁਲ ਬਰਾਬਰ ਰਹਿੰਦਾ ਹੈ ਭਾਵੇਂ ਤੁਹਾਡੀਆਂ ਐਂਟਰੀਆਂ ਕਿਸੇ ਵੀ ਤਰਤੀਬ ਵਿੱਚ ਕਿਉਂ ਨਾ ਹੋਣ। ਡਿਜ਼ਾਈਨ ਮੁਤਾਬਕ ਹਰੇਕ ਐਂਟਰੀ ਦਾ ਭਾਰ ਬਿਲਕੁਲ ਬਰਾਬਰ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਅਜਿਹੇ ਡਰਾਅ ਵਿੱਚ ਜਿੱਥੇ ਇੱਕ ਨਾਮ ਨੂੰ ਦੁੱਗਣਾ ਗਿਣਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਉੱਥੇ ਉਸ ਨਾਮ ਨੂੰ ਦੋ ਵਾਰ ਸੂਚੀਬੱਧ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹਨਾਂ ਸੀਮਾਵਾਂ ਦੇ ਅੰਦਰ ਇਹ ਗਾਰੰਟੀ ਬਹੁਤ ਮਜ਼ਬੂਤ ਹੈ — ਤੁਹਾਡੀ ਸੂਚੀ ਵਿੱਚਲੀ ਹਰੇਕ ਐਂਟਰੀ ਕੋਲ, ਹਰ ਇੱਕ ਡਰਾਅ ਉੱਤੇ ਬਿਲਕੁਲ ਬਰਾਬਰ ਮੌਕਾ ਹੁੰਦਾ ਹੈ।