
Në rrotën e përshkruar në artikull, fituesi zgjidhet përpara se të nisë animacioni; më pas përcaktohet pika ku rrota do të ndalet. Kjo ndarje e përqendron garantimin e paanshmërisë te funksioni i përzgjedhjes, jo te simulimi vizual. Autori thotë se shkrimi u hartua me ndihmën e AI, u kontrollua kundrejt kodit real të faqes dhe kodi i testimit u ekzekutua para publikimit.
Për përzgjedhjen përdoret crypto.getRandomValues(), pasi Math.random() nuk është projektuar si burim i sigurt rastësie. Megjithatë, përdorimi i drejtpërdrejtë i operatorit % mund të krijojë anshmëri modulo: kur diapazoni i numrave nuk pjesëtohet saktësisht me numrin e pjesëmarrësve, disa marrin një avantazh të vogël.
Zgjidhja është kampionimi me refuzim: vlerat mbi një kufi të llogaritur hidhen poshtë dhe shorti përsëritet. Kështu, vlerat e pranuara shpërndahen në mënyrë të barabartë mes pjesëmarrësve. Me numra 32-bitësh, anshmëria është shumë e vogël, por ky mekanizëm e eliminon.
Animacioni më pas e drejton rrotën te segmenti fitues. Një devijim rastësor deri në 40% të segmentit në secilin drejtim shmang ndalimin gjithmonë në qendër. Shtohen pesë deri në shtatë rrotullime të plota, pa lëvizje mbrapsht, ndërsa një funksion zbutjeje i shkallës së katërt e ngadalëson rrotën drejt fundit.
Burimi: DEV Community (Web Dev Feed) — lexoni artikullin e plotë në anglisht.

