{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T05:01:47Z","timestamp":1750309307067,"version":"3.41.0"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2024,4,30]],"date-time":"2024-04-30T00:00:00Z","timestamp":1714435200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2024,4,30]]},"abstract":"<jats:p>From gambling to military conscription, randomization makes crucial real-world decisions. With blood and treasure at stake, fairness is not negotiable. Unfortunately, bad advice and biased methods abound. We'll learn how to navigate around misinformation, develop sound methods, and compile checklists for design and code reviews.<\/jats:p>","DOI":"10.1145\/3664645","type":"journal-article","created":{"date-parts":[[2024,5,29]],"date-time":"2024-05-29T20:19:43Z","timestamp":1717013983000},"page":"19-38","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Zero Tolerance for Bias"],"prefix":"10.1145","volume":"22","author":[{"ORCID":"https:\/\/orcid.org\/0009-0006-1607-5674","authenticated-orcid":false,"given":"Terence","family":"Kelly","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2024,5,29]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Programming Pearls","author":"Bentley J.","unstructured":"Bentley, J. 2000. Programming Pearls, 2nd edition. Chapter 12: A Sample Problem. ACM Press.","edition":"2"},{"key":"e_1_2_1_2_1","unstructured":"Boneh D. Shoup V. 2023. A Graduate Course in Applied Cryptography; https:\/\/toc.cryptobook.us\/book.pdf."},{"key":"e_1_2_1_4_1","unstructured":"Oracle Corporation. 2024. Choosing a PRNG algorithm; https:\/\/docs.oracle.com\/en\/java\/javase\/21\/core\/choosing-prng-algorithm.html."},{"key":"e_1_2_1_5_1","first-page":"160","volume-title":"C: How to Program","author":"Deitel H. M.","year":"1994","unstructured":"Deitel, H. M., Deitel, P. J. 1994. C: How to Program, second edition. Prentice Hall. Modulo bias: pp. 160-163, 183, 215, 289, and 403; shuffle bias: pp. 402-404; seed bias: pp. 289 and 403."},{"key":"e_1_2_1_6_1","first-page":"250","volume-title":"C: How to Program, ninth edition (Global Edition). Pearson. Modulo bias","author":"Deitel H. M.","year":"2023","unstructured":"Deitel, H. M., Deitel, P. J. 2023. C: How to Program, ninth edition (Global Edition). Pearson. Modulo bias: pp. 250-254, 396, and 545; shuffle bias: pp. 545-546 and 574; seed bias: p. 544; secure PRNGs: p. 275."},{"volume-title":"The Mathematics of Shuffling Cards","author":"Diaconis P.","key":"e_1_2_1_7_1","unstructured":"Diaconis, P. Fulman, J. 2023. The Mathematics of Shuffling Cards. American Mathematical Society."},{"key":"e_1_2_1_8_1","doi-asserted-by":"crossref","unstructured":"Durstenfeld R. 1964. Algorithm 235: random permutation. Communications of the ACM 7(7). The entire article occupies the lower-right corner of page 420. https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/364520.364540.","DOI":"10.1145\/364520.364540"},{"key":"e_1_2_1_9_1","volume-title":"Online poker industry review and forecast to 2030","author":"Yahoo","year":"2005","unstructured":"Yahoo! Finance. 2024. Online poker industry review and forecast to 2030; https:\/\/finance.yahoo.com\/news\/online-poker-industry-review-forecast-130200589.html."},{"key":"e_1_2_1_10_1","unstructured":"Fisher-Yates shuffle. 2024. Wikipedia; https:\/\/en.wikipedia.org\/wiki\/Fisher?Yates_shuffle."},{"key":"e_1_2_1_11_1","volume-title":"software implementation guide","author":"Intel","year":"2018","unstructured":"Intel digital random number generator: software implementation guide. 2018. https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/articles\/guide\/intel-digital-random-number-generator-drng-software-implementation-guide.html."},{"key":"e_1_2_1_12_1","unstructured":"Jones D. 2010. Good practice in (pseudo) random number generation for bioinformatics applications; http:\/\/www0.cs.ucl.ac.uk\/staff\/D.Jones\/GoodPracticeRNG.pdf."},{"key":"e_1_2_1_13_1","doi-asserted-by":"crossref","unstructured":"Kelly T. 2020. Efficient graph search: stop when done. acmqueue 18(4); https:\/\/queue.acm.org\/detail.cfm?id=3424304.","DOI":"10.1145\/3424302.3424304"},{"key":"e_1_2_1_14_1","doi-asserted-by":"crossref","unstructured":"Kelly T. 2023. Catch-23: the new C standard sets the world on fire. acmqueue 21(1) 12-29; https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3588242.","DOI":"10.1145\/3588242"},{"key":"e_1_2_1_15_1","unstructured":"Kleptographically insecure PRNGs. 2024. Wikipedia; https:\/\/en.wikipedia.org\/wiki\/Cryptographically_secure_pseudorandom_number_generator#NSA_kleptographic_backdoor_in_the_Dual_EC_DRBG_PRNG."},{"key":"e_1_2_1_16_1","volume-title":"Selected Papers on Analysis of Algorithms","author":"Knuth D. E.","year":"1976","unstructured":"Knuth, D. E., Yao, A. C. 2000. Selected Papers on Analysis of Algorithms, chapter 34: The Complexity of Nonuniform Random Number Generation, 545?603. Stanford Center for the Study of Language and Information. Updated version of 1976 paper."},{"key":"e_1_2_1_17_1","unstructured":"Lemire D. 2018. Fast random integer generation in an interval. https:\/\/arxiv.org\/abs\/1805.10941."},{"key":"e_1_2_1_18_1","volume-title":"Optimal discrete uniform generation from coin flips, and applications. arXiv 1304-1916","author":"Lumbroso J.","year":"1916","unstructured":"Lumbroso, J. 2013. Optimal discrete uniform generation from coin flips, and applications. arXiv 1304-1916; https:\/\/arxiv.org\/abs\/1304.1916."},{"key":"e_1_2_1_19_1","unstructured":"Marsaglia G. 1996. The Marsaglia random number CDROM. https:\/\/web.archive.org\/web\/20100612204426\/ http:\/\/stat.fsu.edu\/pub\/diehard\/cdrom\/pscript\/cdmake.ps."},{"volume-title":"Secret contract tied NSA and security industry pioneer","author":"Menn J.","key":"e_1_2_1_20_1","unstructured":"Menn, J. 2013. Secret contract tied NSA and security industry pioneer. Reuters. A tale of bribery, backdoors, and a \"cryptographically secure\" PRNG that wasn't; https:\/\/www.reuters.com\/article\/uk-usa-security-rsa-idUKBRE9BJ1CJ20131220\/."},{"key":"e_1_2_1_21_1","unstructured":"Minimum standards for gaming devices. 2023. Regulation 14 Section 14.040 paragraph 5. Nevada Gaming Commission and the Nevada Gaming Control Board; https:\/\/gaming.nv.gov\/regs\/statutes-regs\/."},{"key":"e_1_2_1_22_1","volume-title":"A historical note on shuffle algorithms","author":"O'Connor D.","year":"2056","unstructured":"O'Connor, D. 2014. A historical note on shuffle algorithms. Academia; https:\/\/www.academia.edu\/1205620\/OConnor_A_Historical_Note_on_Shuffle_Algorithms."},{"key":"e_1_2_1_23_1","first-page":"342 offer basel","volume-title":"Numerical Recipes: The Art of Scientific Computing","author":"Press W. H.","year":"2007","unstructured":"Press, W. H., Teukolsky, S. A., Vetterling, W. T., Flannery, B. P. 2007. Numerical Recipes: The Art of Scientific Computing, third edition. Cambridge University Press. Chapter 7 covers PRNGs; pages 341?342 offer baseline advice. Not all of this book's advice is good; page 343 recommends PRNG() % N. PDF available at https:\/\/numerical.recipes\/book.html."},{"key":"e_1_2_1_24_1","unstructured":"Rigged backgammon [USENET news thread]. Google Groups; https:\/\/groups.google.com\/g\/rec.games.backgammon\/c\/Dh33pOhN-dE\/m\/0THUPU49AAAJ."},{"key":"e_1_2_1_25_1","volume-title":"Draft officials redesign lottery procedures to make the system more random. The New York Times (June 25), 17","author":"Rosenbaum D. E.","year":"1970","unstructured":"Rosenbaum, D. E. 1970. Draft officials redesign lottery procedures to make the system more random. The New York Times (June 25), 17; https:\/\/timesmachine.nytimes.com\/timesmachine\/1970\/06\/25\/issue.html."},{"key":"e_1_2_1_26_1","unstructured":"Rosenbaum D. E. 1970. Statisticians charge draft lottery was not random. The New York Times (January 4) 66. A classic case study on how to botch a physical shuffle. Second column contains typesetting bug (vertical rotation); https:\/\/timesmachine.nytimes.com\/timesmachine\/1970\/01\/04\/issue.html."},{"key":"e_1_2_1_27_1","volume-title":"How a months-old AMD microcode bug destroyed my weekend. arsTechnica","author":"Salter J.","year":"2019","unstructured":"Salter, J. 2010. How a months-old AMD microcode bug destroyed my weekend. arsTechnica; https:\/\/arstechnica.com\/gadgets\/2019\/10\/how-a-months-old-amd-microcode-bug-destroyed-my-weekend\/."},{"key":"e_1_2_1_28_1","unstructured":"Selective service system lottery. https:\/\/www.sss.gov\/about\/return-to-draft\/lottery\/."},{"key":"e_1_2_1_29_1","article-title":"Nonrandom risk: the 1970 draft lottery","author":"Starr N.","year":"1997","unstructured":"Starr, N. 1997. Nonrandom risk: the 1970 draft lottery. Journal of Statistics Education 5(2); https:\/\/jse.amstat.org\/v5n2\/datasets.starr.html.","journal-title":"Journal of Statistics Education 5(2); https:\/\/jse.amstat.org\/v5n2\/datasets.starr.html."},{"key":"e_1_2_1_30_1","doi-asserted-by":"crossref","unstructured":"Thompson K. 1984. Reflections on trusting trust. Turing Award lecture. Communications of the ACM 27(8); https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/358198.358210.","DOI":"10.1145\/358198.358210"},{"key":"e_1_2_1_31_1","first-page":"241","volume-title":"Building Secure Software","author":"Viega J.","unstructured":"Viega, J., McGraw, G. 2002. Building Secure Software. Addison-Wesley. See pages 238?241 for attacks on poker."},{"key":"e_1_2_1_32_1","volume-title":"Doing the Microsoft shuffle: algorithm fail in browser ballot","author":"Weir R.","year":"2010","unstructured":"Weir, R. 2010. Doing the Microsoft shuffle: algorithm fail in browser ballot; https:\/\/www.robweir.com\/blog\/2010\/02\/microsoft-random-browser-ballot.html. Noteworthy for the innovative use of an intransitive comparison function."},{"key":"e_1_2_1_33_1","volume-title":"MagPi magazine, issue 40 (December","author":"True Random Number Generator","year":"2015","unstructured":"True Random Number Generator. MagPi magazine, issue 40 (December 2015). https:\/\/magpi.raspberrypi.com\/issues\/40"}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3664645","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3664645","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T00:03:45Z","timestamp":1750291425000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3664645"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,4,30]]},"references-count":32,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2024,4,30]]}},"alternative-id":["10.1145\/3664645"],"URL":"https:\/\/doi.org\/10.1145\/3664645","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2024,4,30]]},"assertion":[{"value":"2024-05-29","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}