Knowledge

Random number generation

Source đź“ť

473: 756:
as a hardware test, and then post-processes the random sequence with a shift register stream cipher. It is generally hard to use statistical tests to validate the generated random numbers. Wang and Nicol proposed a distance-based statistical testing technique that is used to identify the weaknesses of several random generators. Li and Wang proposed a method of testing random numbers based on laser chaotic entropy sources using Brownian motion properties.
33: 823:. Again, a naive implementation may induce a modulo bias into the result, so more involved algorithms must be used. A method that nearly never performs division was described in 2018 by Daniel Lemire, with the current state-of-the-art being the arithmetic encoding-inspired 2021 "optimal algorithm" by Stephen Canon of 755:
Generated random numbers are sometimes subjected to statistical tests before use to ensure that the underlying source is still working, and then post-processed to improve their statistical properties. An example would be the TRNG9803 hardware random number generator, which uses an entropy measurement
503:
Most computer-generated random numbers use PRNGs which are algorithms that can automatically create long runs of numbers with good random properties but eventually the sequence repeats (or the memory usage grows without bound). These random numbers are fine in many situations but are not as random as
1041:
it would allow NSA to determine the state of the random number generator, and thereby eventually be able to read all data sent over the SSL connection. Even though it was apparent that Dual_EC_DRBG was a very poor and possibly backdoored pseudorandom number generator long before the NSA backdoor was
1053:
It has also been theorized that hardware RNGs could be secretly modified to have less entropy than stated, which would make encryption using the hardware RNG susceptible to attack. One such method that has been published works by modifying the dopant mask of the chip, which would be undetectable to
751:
Even given a source of plausible random numbers (perhaps from a quantum mechanically based hardware generator), obtaining numbers which are completely unbiased takes care. In addition, behavior of these generators often changes with temperature, power supply voltage, the age of the device, or other
654:. The recurrence relation can be extended to matrices to have much longer periods and better statistical properties . To avoid certain non-random properties of a single linear congruential generator, several such random number generators with slightly different values of the multiplier coefficient, 445:
noise, greatly aid the development of the physical random number generator. Among them, optical chaos has a high potential to physically produce high-speed random numbers due to its high bandwidth and large amplitude. A prototype of a high-speed, real-time physical random bit generator based on a
728:
and using them as a randomization source. However, most studies find that human subjects have some degree of non-randomness when attempting to produce a random sequence of e.g. digits or letters. They may alternate too much between choices when compared to a good random generator; thus, this
937:
Computational and hardware random number generators are sometimes combined to reflect the benefits of both kinds. Computational random number generators can typically generate pseudorandom numbers much faster than physical generators, while physical generators can generate "true randomness."
322:
While a pseudorandom number generator based solely on deterministic logic can never be regarded as a "true" random number source in the purest sense of the word, in practice they are generally sufficient even for demanding security-critical applications. Carefully designed and implemented
319:(CSPRNGs). The fallback occurs when the desired read rate of randomness exceeds the ability of the natural harvesting approach to keep up with the demand. This approach avoids the rate-limited blocking behavior of random number generators based on slower and purely environmental methods. 781:
Most random number generators natively work with integers or individual bits, so an extra step is required to arrive at the "canonical" uniform distribution between 0 and 1. The implementation is not as trivial as dividing the integer by its maximum possible value. Specifically:
312:. This type of generator typically does not rely on sources of naturally occurring entropy, though it may be periodically seeded by natural sources. This generator type is non-blocking, so they are not rate-limited by an external event, making large bulk reads a possibility. 696:
sufficient for cryptography purposes, as is explicitly stated in the language documentation. Such library functions often have poor statistical properties and some will repeat patterns after only tens of thousands of trials. They are often initialized using a computer's
117:, as well as countless other techniques. Because of the mechanical nature of these techniques, generating large quantities of sufficiently random numbers (important in statistics) required much work and time. Thus, results would sometimes be collected and distributed as 208:
randomness, many other operations only need a modest amount of unpredictability. Some simple examples might be presenting a user with a "random quote of the day", or determining which way a computer-controlled adversary might move in a computer game. Weaker forms of
72:(HRNGs), wherein each generation is a function of the current value of a physical environment's attribute that is constantly changing in a manner that is practically impossible to model. This would be in contrast to so-called "random number generations" done by 263:
There are two principal methods used to generate random numbers. The first method measures some physical phenomenon that is expected to be random and then compensates for possible biases in the measurement process. Example sources include measuring
812:'s STL. It does not use the extra precision and suffers from bias only in the last bit due to round-to-even. Other numeric concerns are warranted when shifting this "canonical" uniform distribution to a different range. A proposed method for the 687:
The quality i.e. randomness of such library functions varies widely from completely predictable output, to cryptographically secure. The default random number generator in many languages, including Python, Ruby, R, IDL and PHP is based on the
378:
The earliest methods for generating random numbers, such as dice, coin flipping and roulette wheels, are still used today, mainly in games and gambling as they tend to be too slow for most applications in statistics and cryptography.
669:. While simple to implement, its output is of poor quality. It has a very short period and severe weaknesses, such as the output sequence almost always converging to zero. A recent innovation is to combine the middle square with a 729:
approach is not widely used. However, for the very reason that humans perform poorly in this task, human random number generation can be used as a tool to gain insights into brain functions otherwise not accessible.
480:
Another common entropy source is the behavior of human users of the system. While people are not considered good randomness generators upon request, they generate random behavior quite well in the context of playing
865:, involves choosing an x and y value and testing whether the function of x is greater than the y value. If it is, the x value is accepted. Otherwise, the x value is rejected and the algorithm tries again. 705:. These functions may provide enough randomness for certain tasks (for example video games) but are unsuitable where high-quality randomness is required, such as in cryptography applications, or statistics. 268:, thermal noise, and other external electromagnetic and quantum phenomena. For example, cosmic background radiation or radioactive decay as measured over short timescales represent sources of natural 592: 275:
The speed at which entropy can be obtained from natural sources is dependent on the underlying physical phenomena being measured. Thus, sources of naturally occurring "true" entropy are said to be
994:
The Group at the Taiyuan University of Technology generates random numbers sourced from a chaotic laser. Samples of random numbers are available at their physical random number generator service.
991:
harvests randomness from the quantum process of photonic emission in semiconductors. They supply a variety of ways of fetching the data, including libraries for several programming languages.
789:
The nature of floating-point math itself means there exists more precision the closer the number is to zero. This extra precision is usually not used due to the sheer number of bits required.
1058:
hardware RNG without mixing in the RDRAND output with other sources of entropy to counteract any backdoors in the hardware RNG, especially after the revelation of the NSA Bullrun program.
449:
Various imaginative ways of collecting this entropic information have been devised. One technique is to run a hash function against a frame of a video stream from an unpredictable source.
504:
numbers generated from electromagnetic atmospheric noise used as a source of entropy. The series of values generated by such algorithms is generally determined by a fixed number called a
172:, and other areas where producing an unpredictable result is desirable. Generally, in applications having unpredictability as the paramount feature, such as in security applications, 66:
chance is generated. This means that the particular outcome sequence will contain some patterns detectable in hindsight but impossible to foresee. True random number generators can be
485:
games. Some security-related computer software requires the user to make a lengthy series of mouse movements or keyboard inputs to create sufficient entropy needed to generate random
1375:
Li, Pu; Sun, Yuanyuan; Liu, Xianglian; Yi, Xiaogang; Zhang, Jianguo; Guo, Xiaomin; Guo, Yanqiang; Wang, Yuncai (2016-07-15). "Fully photonics-based physical random bit generator".
861:, involves integrating up to an area greater than or equal to the random number (which should be generated between 0 and 1 for proper distributions). A second method called the 124:
Several computational methods for pseudorandom number generation exist. All fall short of the goal of true randomness, although they may meet, with varying success, some of the
676:
Most computer programming languages include functions or library routines that provide random number generators. They are often designed to provide a random byte or word, or a
239:
random, and may even have ways to control the selection of music: a truly random system would have no restriction on the same item appearing two or three times in succession.
128:
intended to measure how unpredictable their results are (that is, to what degree their patterns are discernible). This generally makes them unusable for applications such as
946:
Some computations making use of a random number generator can be summarized as the computation of a total or average value, such as the computation of integrals by the
640: 958:
numbers. Such sequences have a definite pattern that fills in gaps evenly, qualitatively speaking; a truly random sequence may, and usually does, leave larger gaps.
315:
Some systems take a hybrid approach, providing randomness harvested from natural sources when available, and falling back to periodically re-seeded software-based
78:(PRNGs), which generate numbers that only look random but are in fact predetermined—these generations can be reproduced simply by knowing the state of the PRNG. 1031: 316: 258: 133: 1919:"Uniform random floats: How to generate a double-precision floating-point number in [0, 1] uniformly at random given a uniform random source of bits" 2272: 2253: 304:
that can produce long sequences of apparently random results, which are in fact completely determined by a shorter initial value, known as a seed value or
308:. As a result, the entire seemingly random sequence can be reproduced if the seed value is known. This type of random number generator is often called a 759:
Statistical tests are also used to give confidence that the post-processed final output from a random number generator is truly unbiased, with numerous
792:
Rounding error in division may bias the result. At worst, a supposedly excluded bound may be drawn contrary to expectations based on real-number math.
981:
generates random numbers sourced from quantum vacuum. Samples of random numbers are available at their quantum random number generator research page.
2162: 2144: 2377:
M. Tomassini; M. Sipper; M. Perrenoud (October 2000). "On the generation of high-quality random numbers by two-dimensional cellular automata".
1073:
on the MUSL's secure RNG computer during routine maintenance. During the hacks the man won a total amount of $ 16,500,000 over multiple years.
716:
for Microsoft Windows. Most programming languages, including those mentioned above, provide a means to access these higher-quality sources.
204:
is an important and common task in computer programming. While cryptography and certain numerical algorithms require a very high degree of
1046:. There have subsequently been accusations that RSA Security knowingly inserted a NSA backdoor into its products, possibly as part of the 279: – they are rate-limited until enough entropy is harvested to meet the demand. On some Unix-like systems, including most 39:
are an example of a mechanical hardware random number generator. When a cubical die is rolled, a random number from 1 to 6 is obtained.
974:
resource pages contain a number of hands-on interactive activities and demonstrations of random number generation using Java applets.
235:
are in fact not quite so simple. For instance, a system that "randomly" selects music tracks for a background music system must only
1646:
Matsumoto, M.; Nishimura, T. (1998). "MersenneTwister: A 623-dimensionally Equidistributed Uniform Pseudo-Random Number Generator".
1525: 1139:
Lugrin, Thomas (2023), Mulder, Valentin; Mermoud, Alain; Lenders, Vincent; Tellenbach, Bernhard (eds.), "Random Number Generator",
386:
can be based on an essentially random atomic or subatomic physical phenomenon whose unpredictability can be traced to the laws of
17: 2362: 2339: 2313: 2211: 1893: 1801: 1158: 658:, can be used in parallel, with a "master" random number generator that selects from among the several different generators. 2130: 853:
Given a source of uniform random numbers, there are a couple of methods to create a new random source that corresponds to a
524: 289:
will block until sufficient entropy is harvested from the environment. Due to this blocking behavior, large bulk reads from
1054:
optical reverse-engineering. For example, for random number generation in Linux, it is seen as unacceptable to use Intel's
434:, can be used to approach a uniform distribution of bits from a non-uniformly random source, though at a lower bit rate. 1042:
confirmed in 2013, it had seen significant usage in practice until 2013, for example by the prominent security company
1784:
Wang, Yongge (2014). "Statistical Properties of Pseudo Random Sequences and Experiments with PHP and Debian OpenSSL".
323:
pseudorandom number generators can be certified for security-critical cryptographic purposes, as is the case with the
2494: 911: 681: 647: 2461:
bit-strings in blocks of 512 bits every 60 seconds. Designed to provide unpredictability, autonomy, and consistency.
2115: 1093: 844: 746: 383: 373: 252: 173: 68: 988: 2243: 1066: 1730:
W. A. Wagenaar (1972). "Generation of random sequences by human subjects: a critical survey of the literature".
1691:
W. A. Wagenaar (1972). "Generation of random sequences by human subjects: a critical survey of the literature".
1004: 498: 442: 2442:
a Java-based framework for the generation of simulation sequences, including pseudorandom sequences of numbers
2182:"I am so glad I resisted pressure from Intel engineers to let /dev/random rely only on the RDRAND instruction" 2066: 1038: 838: 515: 511: 309: 248: 74: 1985:"[stdlib] Floating-point random-number improvements by NevinBR · Pull Request #33560 · apple/swift" 854: 391: 269: 169: 2499: 862: 801: 431: 187:
is facilitated by the ability to run the same sequence of random numbers again by starting from the same
724:
Random number generation may also be performed by humans, in the form of collecting various inputs from
89:
data. Some of these have existed since ancient times, including well-known examples like the rolling of
2428: 2048:"An optimal algorithm for bounded random integers by stephentyrone · Pull Request #39143 · apple/swift" 1939: 813: 147: 82: 197:
is secret. The sender and receiver can generate the same set of numbers automatically to use as keys.
2445: 1113: 869: 1874:
Goualard, F. (2020). "Generating Random Floating-Point Numbers by Dividing Integers: A Case Study".
1746: 1707: 1660: 1220:
Herrero-Collantes, Miguel; Garcia-Escartin, Juan Carlos (2016). "Quantum random number generators".
1037:. If for example an SSL connection is created using this random number generator, then according to 984:
Random.org makes available random numbers that are sourced from the randomness of atmospheric noise.
2474: 2087: 951: 930:
operation) to provide a combined RNG at least as good as the best RNG used. This is referred to as
915: 900: 820: 2181: 1788:. Lecture Notes in Computer Science. Vol. 8712. Heidelberg: Springer LNCS. pp. 454–471. 1015:
Since much cryptography depends on a cryptographically secure random number generator for key and
646:
as a series of pseudorandom numbers. The maximum number of numbers the formula can produce is the
411: 2257: 1062: 950:. For such problems, it may be possible to find a more accurate solution by the use of so-called 708:
Much higher quality random number sources are available on most operating systems; for example
422:. However, physical phenomena and tools used to measure them generally feature asymmetries and 1741: 1732: 1702: 1693: 1655: 742: 702: 701:
as the seed, since such a clock is 64 bit and measures in nanoseconds, far beyond the person's
462: 125: 1918: 2475:
Statistical Properties of Pseudo Random Sequences and Experiments with PHP and Debian OpenSSL
2439: 1103: 612: 476:
Demonstration of a simple random number generator based on where and when a button is clicked
2276: 1434:
Wang, Anbang; Li, Pu; Zhang, Jianguo; Zhang, Jianzhong; Li, Lei; Wang, Yuncai (2013-08-26).
1830: 1447: 1384: 1331: 1108: 1020: 1010: 786:
The integer used in the transformation must provide enough bits for the intended precision.
662: 427: 276: 157: 138:(CSPRNGS) also exist, with special features specifically designed for use in cryptography. 8: 1819:"Brownian motion properties of optoelectronic random bit generators based on laser chaos" 1016: 872: 201: 161: 118: 1834: 1536: 1451: 1388: 1335: 926:
The outputs of multiple independent RNGs can be combined (for example, using a bit-wise
2394: 2029: 2011: 1899: 1673: 1626: 1481: 1416: 1295: 1271: 1266: 1247: 1229: 947: 931: 486: 305: 280: 180: 472: 2358: 2335: 2309: 1903: 1889: 1856: 1848: 1797: 1473: 1465: 1408: 1400: 1357: 1349: 1300: 1251: 1154: 1088: 884: 848: 395: 387: 297:
with random bits, can often be slow on systems that use this type of entropy source.
265: 225: 2398: 2033: 2002:
Lemire, Daniel (23 February 2019). "Fast Random Integer Generation in an Interval".
1485: 1019:
generation, if a random number generator can be made predictable, it can be used as
469:
uses variations in the amplitude of atmospheric noise recorded with a normal radio.
2386: 2350: 2299: 2291: 2021: 1879: 1838: 1789: 1751: 1712: 1677: 1665: 1455: 1420: 1392: 1339: 1290: 1280: 1239: 1144: 858: 738: 689: 666: 324: 221: 2450: 2371: 1793: 1243: 1118: 1098: 1047: 760: 698: 423: 294: 272:(as a measure of unpredictability or surprise of the number generation process). 2295: 2197:"Re: [PATCH] /dev/random: Insufficient of entropy on many architectures" 1958: 1884: 1605: 1149: 829:
Most 0 to 1 RNGs include 0 but exclude 1, while others include or exclude both.
1817:
Li, Pu; Yi, Xiaogang; Liu, Xianglian; Wang, Yuncai; Wang, Yongge (2016-07-11).
1285: 713: 677: 482: 328: 214: 2488: 1852: 1770: 1561: 1469: 1404: 1353: 670: 661:
A simple pen-and-paper method for generating random numbers is the so-called
438: 399: 232: 94: 2424: 2047: 1984: 1878:. ICCS. Lecture Notes in Computer Science. Vol. 12138. pp. 15–28. 1265:
Jacak, Marcin M.; Jóźwiak, Piotr; Niemczuk, Jakub; Jacak, Janusz E. (2021).
2479: 2458: 2239: 1860: 1477: 1412: 1361: 1304: 1043: 1034: 819:
Uniformly distributed integers are commonly used in algorithms such as the
165: 129: 102: 2163:"Researchers can slip an undetectable trojan into Intel's Ivy Bridge CPUs" 1669: 27:
Producing a sequence that cannot be predicted better than by random chance
2323: 1843: 1818: 1460: 1435: 1396: 1344: 1319: 955: 506: 419: 407: 189: 2304: 2145:"We don't enable backdoors in our crypto products, RSA tells customers" 1198: 824: 466: 403: 356: 110: 2390: 176:
are generally preferred over pseudorandom algorithms, where feasible.
1755: 1716: 1521: 454: 415: 301: 218: 184: 98: 2327: 2025: 1625:
Widynski, Bernard (19 May 2020). "Middle-Square Weyl Sequence RNG".
2464: 2196: 2016: 1631: 1500: 1234: 1208: 1184: 1050:. RSA has denied knowingly inserting a backdoor into its products. 725: 458: 450: 153: 673:. This method produces high-quality output through a long period. 32: 2468: 2376: 1204: 1083: 1070: 797: 352: 336: 114: 2348: 1219: 231:
Some applications that appear at first sight to be suitable for
85:
have led to the development of different methods for generating
2349:
Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007).
1055: 712:
on various BSD flavors, Linux, Mac OS X, IRIX, and Solaris, or
348: 106: 86: 63: 59: 55: 1174: 941: 179:
Pseudorandom number generators are very useful in developing
1436:"4.5 Gbps high-speed real-time physical random bit generator" 1180: 809: 805: 437:
The appearance of wideband photonic entropy sources, such as
344: 868:
As an example for rejection sampling, to generate a pair of
2454: 2322: 1027: 971: 90: 36: 2418: 2284:
Handbook of Computational Statistics: Concepts and Methods
2085: 1581: 966:
The following sites make available random number samples:
2434: 1264: 1026:
The NSA is reported to have inserted a backdoor into the
978: 927: 732: 340: 1959:"Drawing random floating-point numbers from an interval" 2372:
NIST SP800-90A, B, C series on random number generation
1318:
Li, Pu; Wang, Yun-Cai; Zhang, Jian-Zhong (2010-09-13).
317:
cryptographically secure pseudorandom number generators
135:
cryptographically secure pseudorandom number generators
2357:(3rd ed.). New York: Cambridge University Press. 1032:
cryptographically secure pseudorandom number generator
587:{\displaystyle X_{n+1}=(aX_{n}+b)\,{\textrm {mod}}\,m} 259:
Cryptographically secure pseudorandom number generator
193:. They are also used in cryptography – so long as the 2412: 2248:. Vol. 2: Seminumerical algorithms (3 ed.). 1606:"High Dimensionality Pseudo Random Number Generators" 1143:, Cham: Springer Nature Switzerland, pp. 31–34, 1141:
Trends in Data Protection and Encryption Technologies
615: 527: 2290:(second ed.). Springer-Verlag. pp. 35–71. 2265:
Proceedings of the 2017 Winter Simulation Conference
2004:
ACM Transactions on Modeling and Computer Simulation
1648:
ACM Transactions on Modeling and Computer Simulation
709: 285: 2203: 62:that cannot be reasonably predicted better than by 2480:Random Sequence Generator based on Avalanche Noise 2355:Numerical Recipes: The Art of Scientific Computing 1645: 1519: 634: 586: 426:that make their outcomes not uniformly random. A 141: 1940:"A new specification for std::generate_canonical" 489:or to initialize pseudorandom number generators. 242: 2486: 2471:article describing a dedicated Linux system call 2334:. New York: John Wiley & Sons. p. 772. 1559: 1433: 987:The Quantum Random Bit Generator Service at the 961: 2446:Random number generators in NAG Fortran Library 2282:. In J. E. Gentle; W. Haerdle; Y. Mori (eds.). 1069:(MUSL), who surreptitiously installed backdoor 453:used this technique with images of a number of 2328:"Chapter 1 – Uniform Random Number Generation" 2131:"RSA warns developers not to use RSA products" 1729: 1690: 355:uses a pseudorandom number algorithm known as 152:Random number generators have applications in 2465:A system call for random numbers: getrandom() 2258:"History of Uniform Random Number Generation" 2194: 2179: 2128: 2113: 816:claims to use the full precision everywhere. 771: 2271: 2252: 2238: 1065:by the information security director of the 1816: 1317: 942:Low-discrepancy sequences as an alternative 46:is a process by which, often by means of a 1374: 1320:"All-optical fast random number generator" 2303: 2064: 2015: 1883: 1842: 1745: 1706: 1659: 1630: 1582:"RANDOM.ORG – True Random Number Service" 1459: 1343: 1294: 1284: 1233: 1148: 580: 572: 1956: 1916: 1873: 1768: 1624: 1023:by an attacker to break the encryption. 776: 492: 471: 31: 1771:"TRNG9803 True Random Number Generator" 1562:"TrueCrypt Beginner's Tutorial, Part 3" 766: 14: 2487: 2242:(1997). "Chapter 3 – Random Numbers". 2212:"Inside the Biggest Lottery Scam Ever" 2209: 2001: 1267:"Quantum generators of random numbers" 1138: 832: 733:Post-processing and statistical checks 414:, the timing of actual movements of a 2122: 362: 300:The second method uses computational 2288:Handbook of Computational Statistics 1783: 1982: 1121:, contains a chance-dependent value 367: 24: 2326:; Taimre, T.; Botev, Z.I. (2011). 2232: 1498: 796:The mainstream algorithm, used by 25: 2511: 2406: 1876:Computational Science – ICCS 2020 1526:"Games for Extracting Randomness" 1501:"HotBits: Genuine Random Numbers" 808:, is described in a proposal for 446:chaotic laser was built in 2013. 331:. The former is the basis of the 69:hardware random-number generators 2116:"The Many Flaws of Dual_EC_DRBG" 2088:"G05 – Random Number Generators" 2086:The Numerical Algorithms Group. 1957:Goualard, FrĂ©dĂ©ric (July 2021). 1786:Computer Security - ESORICS 2014 1094:List of random number generators 977:The Quantum Optics Group at the 845:cumulative distribution function 747:List of random number generators 461:measured radioactive decay with 384:hardware random number generator 374:Hardware random number generator 253:Hardware random number generator 126:statistical tests for randomness 2419:Quantum random number generator 2332:Handbook of Monte Carlo Methods 2267:. IEEE Press. pp. 202–230. 2245:The Art of Computer Programming 2188: 2173: 2155: 2137: 2107: 2079: 2058: 2040: 1995: 1976: 1950: 1932: 1910: 1867: 1810: 1777: 1762: 1723: 1684: 1639: 1618: 1598: 1574: 1553: 1513: 1067:Multi-State Lottery Association 142:Practical applications and uses 2379:IEEE Transactions on Computers 1773:. Manufacturer: www.TRNG98.se. 1492: 1427: 1368: 1311: 1258: 1213: 1190: 1166: 1132: 1063:a U.S. lottery draw was rigged 1005:Random number generator attack 883:), one may first generate the 569: 547: 499:Pseudorandom number generation 443:amplified spontaneous emission 243:True vs. pseudo-random numbers 132:. However, carefully designed 75:pseudorandom number generators 13: 1: 2210:Nestel, M.L. (July 7, 2015). 1533:Weizmann Institute of Science 1126: 962:Activities and demonstrations 873:standard normally distributed 839:Pseudo-random number sampling 516:linear congruential generator 310:pseudorandom number generator 249:Pseudorandom number generator 2129:Matthew Green (2013-09-20). 2114:matthew Green (2013-09-18). 1917:Campbell, Taylor R. (2014). 1794:10.1007/978-3-319-11203-9_26 1244:10.1103/RevModPhys.89.015004 998: 921: 855:probability density function 719: 518:, which uses the recurrence 170:completely randomized design 7: 2351:"Chapter 7. Random Numbers" 2296:10.1007/978-3-642-21551-3_3 2095:NAG Library Manual, Mark 23 2067:"Common generation methods" 1885:10.1007/978-3-030-50417-5_2 1150:10.1007/978-3-031-33386-6_7 1076: 863:acceptance-rejection method 597:to generate numbers, where 432:cryptographic hash function 10: 2516: 2415:True Random Number Service 2277:"Random Number Generation" 1286:10.1038/s41598-021-95388-7 1008: 1002: 842: 836: 814:Swift programming language 772:Reshaping the distribution 736: 496: 371: 256: 246: 148:Applications of randomness 145: 83:applications of randomness 1222:Reviews of Modern Physics 1114:Random password generator 952:low-discrepancy sequences 870:statistically independent 510:. One of the most common 283:, the pseudo device file 2495:Random number generation 989:RuÄ‘er Bošković Institute 857:. One method called the 763:suites being developed. 609:are large integers, and 44:Random number generation 2425:Random and Pseudorandom 635:{\displaystyle X_{n+1}} 48:random number generator 18:Random Number Generator 1733:Psychological Bulletin 1694:Psychological Bulletin 1560:TrueCrypt Foundation. 752:outside interference. 743:Statistical randomness 636: 588: 477: 40: 1769:Dömstedt, B. (2009). 1670:10.1145/272991.272995 1104:Procedural generation 1009:Further information: 777:Uniform distributions 682:uniformly distributed 637: 589: 493:Computational methods 475: 418:read-write head, and 406:, avalanche noise in 335:source of entropy on 35: 1844:10.1364/OE.24.015822 1461:10.1364/OE.21.020452 1397:10.1364/OL.41.003347 1345:10.1364/OE.18.020360 1109:Randomized algorithm 1011:Backdoor (computing) 916:Box–Muller transform 821:Fisher–Yates shuffle 767:Other considerations 663:middle-square method 613: 525: 428:randomness extractor 293:, such as filling a 202:pseudorandom numbers 158:statistical sampling 119:random number tables 1835:2016OExpr..2415822L 1829:(14): 15822–15833. 1452:2013OExpr..2120452W 1446:(17): 20452–20462. 1389:2016OptL...41.3347L 1336:2010OExpr..1820360L 1330:(19): 20360–20369. 1017:cryptographic nonce 833:Other distributions 463:Geiger–Muller tubes 281:Linux distributions 174:hardware generators 162:computer simulation 2500:Information theory 1272:Scientific Reports 1207:Library Functions 948:Monte Carlo method 932:software whitening 632: 584: 478: 363:Generation methods 226:sorting algorithms 200:The generation of 181:Monte Carlo-method 41: 2451:Randomness Beacon 2391:10.1109/12.888056 2385:(10): 1146–1151. 2364:978-0-521-88068-8 2341:978-0-470-17793-8 2315:978-3-642-21550-6 1895:978-3-030-50416-8 1803:978-3-319-11202-2 1383:(14): 3347–3350. 1160:978-3-031-33386-6 1089:League of entropy 885:polar coordinates 849:quantile function 692:algorithm and is 684:between 0 and 1. 577: 424:systematic biases 396:radioactive decay 388:quantum mechanics 266:atmospheric noise 54:), a sequence of 16:(Redirected from 2507: 2402: 2368: 2345: 2319: 2307: 2281: 2273:L'Ecuyer, Pierre 2268: 2262: 2254:L'Ecuyer, Pierre 2249: 2227: 2226: 2224: 2222: 2207: 2201: 2200: 2192: 2186: 2185: 2177: 2171: 2170: 2159: 2153: 2152: 2141: 2135: 2134: 2126: 2120: 2119: 2111: 2105: 2104: 2102: 2101: 2092: 2083: 2077: 2076: 2074: 2073: 2062: 2056: 2055: 2044: 2038: 2037: 2019: 1999: 1993: 1992: 1980: 1974: 1973: 1971: 1969: 1954: 1948: 1947: 1944:www.open-std.org 1936: 1930: 1929: 1927: 1925: 1914: 1908: 1907: 1887: 1871: 1865: 1864: 1846: 1814: 1808: 1807: 1781: 1775: 1774: 1766: 1760: 1759: 1756:10.1037/h0032060 1749: 1727: 1721: 1720: 1717:10.1037/h0032060 1710: 1688: 1682: 1681: 1663: 1643: 1637: 1636: 1634: 1622: 1616: 1615: 1613: 1612: 1602: 1596: 1595: 1593: 1592: 1578: 1572: 1571: 1569: 1568: 1557: 1551: 1550: 1548: 1547: 1541: 1535:. Archived from 1530: 1517: 1511: 1510: 1508: 1507: 1496: 1490: 1489: 1463: 1431: 1425: 1424: 1372: 1366: 1365: 1347: 1315: 1309: 1308: 1298: 1288: 1262: 1256: 1255: 1237: 1217: 1211: 1202: 1201: 1194: 1188: 1178: 1177: 1170: 1164: 1163: 1152: 1136: 875:random numbers ( 859:inversion method 739:Randomness tests 690:Mersenne Twister 667:John von Neumann 657: 653: 645: 641: 639: 638: 633: 631: 630: 608: 604: 600: 593: 591: 590: 585: 579: 578: 575: 562: 561: 543: 542: 368:Physical methods 334: 325:yarrow algorithm 292: 288: 217:and in creating 183:simulations, as 21: 2515: 2514: 2510: 2509: 2508: 2506: 2505: 2504: 2485: 2484: 2457:, broadcasting 2409: 2365: 2342: 2316: 2279: 2260: 2235: 2233:Further reading 2230: 2220: 2218: 2216:The Daily Beast 2208: 2204: 2195:Theodore Ts'o. 2193: 2189: 2180:Theodore Ts'o. 2178: 2174: 2161: 2160: 2156: 2143: 2142: 2138: 2127: 2123: 2112: 2108: 2099: 2097: 2090: 2084: 2080: 2071: 2069: 2065:The MathWorks. 2063: 2059: 2046: 2045: 2041: 2026:10.1145/3230636 2000: 1996: 1981: 1977: 1967: 1965: 1955: 1951: 1938: 1937: 1933: 1923: 1921: 1915: 1911: 1896: 1872: 1868: 1815: 1811: 1804: 1782: 1778: 1767: 1763: 1747:10.1.1.211.9085 1728: 1724: 1708:10.1.1.211.9085 1689: 1685: 1661:10.1.1.215.1141 1644: 1640: 1623: 1619: 1610: 1608: 1604: 1603: 1599: 1590: 1588: 1580: 1579: 1575: 1566: 1564: 1558: 1554: 1545: 1543: 1539: 1528: 1518: 1514: 1505: 1503: 1497: 1493: 1432: 1428: 1373: 1369: 1316: 1312: 1263: 1259: 1218: 1214: 1197: 1196: 1195: 1191: 1187:– Special Files 1173: 1172: 1171: 1167: 1161: 1137: 1133: 1129: 1124: 1119:Random variable 1099:PP (complexity) 1079: 1048:Bullrun program 1013: 1007: 1001: 964: 944: 924: 904: 851: 841: 835: 779: 774: 769: 761:randomness test 749: 735: 722: 699:real-time clock 655: 651: 643: 642:is the next in 620: 616: 614: 611: 610: 606: 602: 598: 574: 573: 557: 553: 532: 528: 526: 523: 522: 501: 495: 376: 370: 365: 332: 295:hard disk drive 290: 284: 261: 255: 247:Main articles: 245: 215:hash algorithms 150: 144: 28: 23: 22: 15: 12: 11: 5: 2513: 2503: 2502: 2497: 2483: 2482: 2477: 2472: 2462: 2448: 2443: 2437: 2422: 2416: 2408: 2407:External links 2405: 2404: 2403: 2374: 2369: 2363: 2346: 2340: 2320: 2314: 2269: 2250: 2234: 2231: 2229: 2228: 2202: 2187: 2184:. Google Plus. 2172: 2154: 2136: 2121: 2106: 2078: 2057: 2039: 1994: 1975: 1949: 1931: 1909: 1894: 1866: 1823:Optics Express 1809: 1802: 1776: 1761: 1722: 1683: 1638: 1617: 1597: 1586:www.random.org 1573: 1552: 1520:Halprin, Ran; 1512: 1499:Walker, John. 1491: 1440:Optics Express 1426: 1377:Optics Letters 1367: 1324:Optics Express 1310: 1257: 1212: 1189: 1165: 1159: 1130: 1128: 1125: 1123: 1122: 1116: 1111: 1106: 1101: 1096: 1091: 1086: 1080: 1078: 1075: 1003:Main article: 1000: 997: 996: 995: 992: 985: 982: 975: 963: 960: 954:, also called 943: 940: 923: 920: 902: 837:Main article: 834: 831: 794: 793: 790: 787: 778: 775: 773: 770: 768: 765: 734: 731: 721: 718: 714:CryptGenRandom 678:floating point 629: 626: 623: 619: 595: 594: 583: 571: 568: 565: 560: 556: 552: 549: 546: 541: 538: 535: 531: 497:Main article: 494: 491: 483:mixed strategy 372:Main article: 369: 366: 364: 361: 351:, and others. 244: 241: 146:Main article: 143: 140: 26: 9: 6: 4: 3: 2: 2512: 2501: 2498: 2496: 2493: 2492: 2490: 2481: 2478: 2476: 2473: 2470: 2466: 2463: 2460: 2456: 2452: 2449: 2447: 2444: 2441: 2438: 2436: 2432: 2431: 2426: 2423: 2420: 2417: 2414: 2411: 2410: 2400: 2396: 2392: 2388: 2384: 2380: 2375: 2373: 2370: 2366: 2360: 2356: 2352: 2347: 2343: 2337: 2333: 2329: 2325: 2324:Kroese, D. P. 2321: 2317: 2311: 2306: 2301: 2297: 2293: 2289: 2285: 2278: 2274: 2270: 2266: 2259: 2255: 2251: 2247: 2246: 2241: 2237: 2236: 2217: 2213: 2206: 2198: 2191: 2183: 2176: 2169:. 2013-09-18. 2168: 2164: 2158: 2151:. 2013-09-20. 2150: 2146: 2140: 2132: 2125: 2117: 2110: 2096: 2089: 2082: 2068: 2061: 2053: 2049: 2043: 2035: 2031: 2027: 2023: 2018: 2013: 2009: 2005: 1998: 1990: 1986: 1979: 1964: 1960: 1953: 1945: 1941: 1935: 1920: 1913: 1905: 1901: 1897: 1891: 1886: 1881: 1877: 1870: 1862: 1858: 1854: 1850: 1845: 1840: 1836: 1832: 1828: 1824: 1820: 1813: 1805: 1799: 1795: 1791: 1787: 1780: 1772: 1765: 1757: 1753: 1748: 1743: 1739: 1735: 1734: 1726: 1718: 1714: 1709: 1704: 1700: 1696: 1695: 1687: 1679: 1675: 1671: 1667: 1662: 1657: 1653: 1649: 1642: 1633: 1628: 1621: 1607: 1601: 1587: 1583: 1577: 1563: 1556: 1542:on 2011-08-07 1538: 1534: 1527: 1523: 1516: 1502: 1495: 1487: 1483: 1479: 1475: 1471: 1467: 1462: 1457: 1453: 1449: 1445: 1441: 1437: 1430: 1422: 1418: 1414: 1410: 1406: 1402: 1398: 1394: 1390: 1386: 1382: 1378: 1371: 1363: 1359: 1355: 1351: 1346: 1341: 1337: 1333: 1329: 1325: 1321: 1314: 1306: 1302: 1297: 1292: 1287: 1282: 1278: 1274: 1273: 1268: 1261: 1253: 1249: 1245: 1241: 1236: 1231: 1227: 1223: 1216: 1210: 1206: 1203: â€“  1200: 1199:arc4random(3) 1193: 1186: 1183:Programmer's 1182: 1179: â€“  1176: 1169: 1162: 1156: 1151: 1146: 1142: 1135: 1131: 1120: 1117: 1115: 1112: 1110: 1107: 1105: 1102: 1100: 1097: 1095: 1092: 1090: 1087: 1085: 1082: 1081: 1074: 1072: 1068: 1064: 1059: 1057: 1051: 1049: 1045: 1040: 1039:Matthew Green 1036: 1033: 1029: 1024: 1022: 1018: 1012: 1006: 993: 990: 986: 983: 980: 976: 973: 969: 968: 967: 959: 957: 953: 949: 939: 935: 933: 929: 919: 917: 913: 912:UNIFORM(0,2Ď€) 909: 905: 898: 894: 890: 886: 882: 878: 874: 871: 866: 864: 860: 856: 850: 846: 840: 830: 827: 826: 822: 817: 815: 811: 807: 803: 799: 791: 788: 785: 784: 783: 764: 762: 757: 753: 748: 744: 740: 730: 727: 717: 715: 711: 706: 704: 700: 695: 691: 685: 683: 679: 674: 672: 671:Weyl sequence 668: 665:suggested by 664: 659: 649: 627: 624: 621: 617: 581: 566: 563: 558: 554: 550: 544: 539: 536: 533: 529: 521: 520: 519: 517: 513: 509: 508: 500: 490: 488: 484: 474: 470: 468: 464: 460: 456: 452: 447: 444: 440: 439:optical chaos 435: 433: 429: 425: 421: 417: 413: 409: 405: 401: 400:thermal noise 397: 393: 390:. Sources of 389: 385: 380: 375: 360: 358: 354: 350: 346: 342: 338: 330: 326: 320: 318: 313: 311: 307: 303: 298: 296: 287: 282: 278: 273: 271: 267: 260: 254: 250: 240: 238: 234: 233:randomization 229: 227: 223: 220: 216: 212: 207: 203: 198: 196: 192: 191: 186: 182: 177: 175: 171: 167: 163: 159: 155: 149: 139: 137: 136: 131: 127: 122: 120: 116: 112: 108: 105:, the use of 104: 103:playing cards 100: 96: 95:coin flipping 92: 88: 84: 79: 77: 76: 71: 70: 65: 61: 57: 53: 49: 45: 38: 34: 30: 19: 2459:full entropy 2429: 2382: 2378: 2354: 2331: 2287: 2283: 2264: 2244: 2240:Donald Knuth 2219:. Retrieved 2215: 2205: 2190: 2175: 2167:Ars Technica 2166: 2157: 2149:Ars Technica 2148: 2139: 2124: 2109: 2098:. Retrieved 2094: 2081: 2070:. Retrieved 2060: 2051: 2042: 2007: 2003: 1997: 1988: 1978: 1966:. Retrieved 1962: 1952: 1943: 1934: 1922:. Retrieved 1912: 1875: 1869: 1826: 1822: 1812: 1785: 1779: 1764: 1740:(1): 65–72. 1737: 1731: 1725: 1701:(1): 65–72. 1698: 1692: 1686: 1651: 1647: 1641: 1620: 1609:. Retrieved 1600: 1589:. Retrieved 1585: 1576: 1565:. Retrieved 1555: 1544:. Retrieved 1537:the original 1532: 1515: 1504:. Retrieved 1494: 1443: 1439: 1429: 1380: 1376: 1370: 1327: 1323: 1313: 1279:(1): 16108. 1276: 1270: 1260: 1225: 1221: 1215: 1192: 1168: 1140: 1134: 1060: 1052: 1044:RSA Security 1035:Dual EC DRBG 1025: 1014: 965: 945: 936: 925: 907: 896: 892: 888: 880: 876: 867: 852: 828: 818: 795: 780: 758: 754: 750: 723: 707: 693: 686: 675: 660: 596: 505: 502: 479: 448: 436: 430:, such as a 408:Zener diodes 381: 377: 321: 314: 299: 274: 262: 236: 230: 213:are used in 210: 205: 199: 194: 188: 178: 166:cryptography 151: 134: 130:cryptography 123: 109:stalks (for 80: 73: 67: 51: 47: 43: 42: 29: 2430:In Our Time 2305:10419/22195 2010:(1): 1–12. 1968:4 September 1924:4 September 1654:(1): 3–30. 956:quasirandom 710:/dev/random 420:radio noise 412:clock drift 333:/dev/random 291:/dev/random 286:/dev/random 190:random seed 2489:Categories 2413:RANDOM.ORG 2100:2012-02-09 2072:2024-09-08 2017:1805.10941 1632:1704.00358 1611:2018-11-21 1591:2016-01-14 1567:2009-06-27 1546:2009-06-27 1522:Naor, Moni 1506:2009-06-27 1235:1604.03304 1228:: 015004. 1127:References 1030:certified 843:See also: 825:Apple Inc. 737:See also: 467:Random.org 455:lava lamps 404:shot noise 357:arc4random 302:algorithms 257:See also: 211:randomness 111:divination 1983:NevinBR. 1904:219889587 1853:1094-4087 1742:CiteSeerX 1703:CiteSeerX 1656:CiteSeerX 1470:1094-4087 1405:1539-4794 1354:1094-4087 1252:118592321 1175:random(4) 1061:In 2010, 999:Backdoors 922:Whitening 895:), where 726:end users 720:By humans 703:precision 416:hard disk 222:searching 219:amortized 185:debugging 113:) in the 99:shuffling 2399:10139169 2275:(2012). 2256:(2017). 2221:July 10, 2034:44061046 1861:27410852 1486:10397141 1478:24105589 1413:27420532 1362:20940928 1305:34373502 1077:See also 1021:backdoor 465:, while 451:Lavarand 394:include 277:blocking 206:apparent 154:gambling 81:Various 2469:LWN.net 2433:at the 1831:Bibcode 1678:3332028 1448:Bibcode 1421:2909061 1385:Bibcode 1332:Bibcode 1296:8352985 1205:OpenBSD 1084:Flipism 1071:malware 798:OpenJDK 680:number 648:modulus 514:is the 459:HotBits 392:entropy 353:OpenBSD 337:FreeBSD 329:fortuna 270:entropy 115:I Ching 60:symbols 56:numbers 2421:at ANU 2397:  2361:  2338:  2312:  2199:. LWN. 2052:GitHub 2032:  1989:GitHub 1902:  1892:  1859:  1851:  1800:  1744:  1705:  1676:  1658:  1484:  1476:  1468:  1419:  1411:  1403:  1360:  1352:  1303:  1293:  1250:  1209:Manual 1185:Manual 1157:  1056:RDRAND 804:, and 745:, and 349:NetBSD 237:appear 107:yarrow 97:, the 87:random 64:random 2440:jRand 2395:S2CID 2280:(PDF) 2261:(PDF) 2091:(PDF) 2030:S2CID 2012:arXiv 1900:S2CID 1674:S2CID 1627:arXiv 1540:(PDF) 1529:(PDF) 1482:S2CID 1417:S2CID 1248:S2CID 1230:arXiv 1181:Linux 914:(see 806:NumPy 345:macOS 2467:, a 2455:NIST 2359:ISBN 2336:ISBN 2310:ISBN 2223:2015 1970:2021 1926:2021 1890:ISBN 1857:PMID 1849:ISSN 1798:ISBN 1474:PMID 1466:ISSN 1409:PMID 1401:ISSN 1358:PMID 1350:ISSN 1301:PMID 1155:ISBN 1028:NIST 972:SOCR 970:The 906:and 847:and 802:Rust 605:and 512:PRNG 507:seed 487:keys 441:and 327:and 251:and 224:and 195:seed 91:dice 37:Dice 2453:at 2435:BBC 2427:on 2387:doi 2300:hdl 2292:doi 2022:doi 1963:HAL 1880:doi 1839:doi 1790:doi 1752:doi 1713:doi 1666:doi 1456:doi 1393:doi 1340:doi 1291:PMC 1281:doi 1240:doi 1145:doi 979:ANU 928:XOR 918:). 810:C++ 694:not 576:mod 341:AIX 306:key 101:of 58:or 52:RNG 2491:: 2393:. 2383:49 2381:. 2353:. 2330:. 2308:. 2298:. 2286:. 2263:. 2214:. 2165:. 2147:. 2093:. 2050:. 2028:. 2020:. 2008:29 2006:. 1987:. 1961:. 1942:. 1898:. 1888:. 1855:. 1847:. 1837:. 1827:24 1825:. 1821:. 1796:. 1750:. 1738:77 1736:. 1711:. 1699:77 1697:. 1672:. 1664:. 1650:. 1584:. 1531:. 1524:. 1480:. 1472:. 1464:. 1454:. 1444:21 1442:. 1438:. 1415:. 1407:. 1399:. 1391:. 1381:41 1379:. 1356:. 1348:. 1338:. 1328:18 1326:. 1322:. 1299:. 1289:. 1277:11 1275:. 1269:. 1246:. 1238:. 1226:89 1224:. 1153:, 934:. 891:, 879:, 800:, 741:, 650:, 601:, 457:. 410:, 402:, 398:, 382:A 359:. 347:, 343:, 339:, 228:. 168:, 164:, 160:, 156:, 121:. 93:, 2401:. 2389:: 2367:. 2344:. 2318:. 2302:: 2294:: 2225:. 2133:. 2118:. 2103:. 2075:. 2054:. 2036:. 2024:: 2014:: 1991:. 1972:. 1946:. 1928:. 1906:. 1882:: 1863:. 1841:: 1833:: 1806:. 1792:: 1758:. 1754:: 1719:. 1715:: 1680:. 1668:: 1652:8 1635:. 1629:: 1614:. 1594:. 1570:. 1549:. 1509:. 1488:. 1458:: 1450:: 1423:. 1395:: 1387:: 1364:. 1342:: 1334:: 1307:. 1283:: 1254:. 1242:: 1232:: 1147:: 910:~ 908:θ 903:2 901:χ 899:~ 897:r 893:θ 889:r 887:( 881:y 877:x 656:a 652:m 644:X 628:1 625:+ 622:n 618:X 607:m 603:b 599:a 582:m 570:) 567:b 564:+ 559:n 555:X 551:a 548:( 545:= 540:1 537:+ 534:n 530:X 50:( 20:)

Index

Random Number Generator

Dice
numbers
symbols
random
hardware random-number generators
pseudorandom number generators
applications of randomness
random
dice
coin flipping
shuffling
playing cards
yarrow
divination
I Ching
random number tables
statistical tests for randomness
cryptography
cryptographically secure pseudorandom number generators
Applications of randomness
gambling
statistical sampling
computer simulation
cryptography
completely randomized design
hardware generators
Monte Carlo-method
debugging

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑