The reason why pseudo-random numbers are called "pseudo-random" is that in general, if you know what the seed input(s) to the function are, you should be able to predict the value being calculated.  We generally presume that for most uses the fact that the seed input values are stored in RAM are sufficient (which is why pseudo-random numbers are still useful), but if you know the seed input and the algorithm used to generate the random numbers, you can predict what numbers will be generated next.

To generate a number truly randomly, you need a truly random source of input.  Whereas pseudo-random number generators (PRNG) use algorithms to generate random numbers, a true random number generator (TRNG) will measure physical phenomena in the environment, and will use that data to generate truly random numbers that cannot be predicted.

There are a variety of methods for a TRGN to generate truly random numbers.  One easy to understand method to generate a hardware random number (which isn't used in practice, but I'll get why in a minute) would be to create a machine that simply flips a coin, and which can optically determine whether it is heads or tails^0.  It can then assign each possibility to a binary digit (i.e.: heads is 1, tails is 0), and then simply repeatedly flip the coin as many times as needed to get a random number of however many bits are desired (i.e.: if you want an 8-bit number, flip the coin 8 times).  You now have a very simple to understand and use, TRNG.

The problem with this specific TRNG (and one that impacts all TRNGs to differing extents) is that flipping coins is slow, and generating enough "bits", especially for algorithms that may be requiring a lot of random numbers (such as in Monte Carlo simulations) is going to slow down computation.  In the real world, other easier to measure and faster systems are in place, such as those that use quantum properties (such as measuring radioactive decay), thermal properties, atmospheric noise, radio noise, etc.

As an aside, while coin flipping is considered to be unbiased (i.e.: it generated heads and tails at equal rates), this may not be true of other methods, such as measuring radioactive decay.  In the case of radioactive decay, you might find that the decay events happen infrequently compared to no-decay events.  To combat this, physical properties that have a bias towards one result over another go through what is known as a "whitening".  John von Neumann proposed one of the first whitening algorithms, which is rather easy to visualize:  you read in a pair of biased random bits.  If both bits are the same, you discard them (and return nothing).  If the two bits are [0,1], you return 0.  If the two bits are [1,0], you return 1.  Such an algorithm will rid you of whatever bias may be present in your physical measurement system.

As somewhat indicated above, the big problem with TRNGs is that they tend to be somewhat slow, and it can take some time to build up a sufficient number of bits for certain types of tasks.  For algorithms and tasks that require a lot of processing speed _and_ good random numbers, it's often best to combine a TRNG with a PRNG, such that the TRNG produces bits to act as the seed into the PRNG at regular intervals.  Thus for example, if you have a TRNG that can generate 100 random bits per second, but you have a process that requires 10 000 random bits per second, you could use the TRNG to provide the seed for the PRNG, use the output from the PRNG in your algorithm, and then every few seconds as you re-generate a sufficient pool of bits from the TRNG, re-seed the PRNG with bits from the TRNG (if the PRNG takes exactly 100 bits as a seed, you could re-seed the PRNG once every second).

I hope this helps!

-----
^0 -- realistically, if you were to make such a machine you'd probably make the coin white on one side and black on the other to make it easier for the computer to determine which side is up.
ව්‍යාජ සසම්භාවී සංඛ්‍යා &quot;ව්‍යාජ සසම්භාවී&quot; ලෙස හැඳින්වීමට හේතුව නම්, සාමාන්‍යයෙන්, ශ්‍රිතයට ඇති බීජ ආදානය (ය) මොනවාදැයි ඔබ දන්නේ නම්, ඔබට ගණනය කරන අගය පුරෝකථනය කිරීමට හැකි විය යුතුය. අපි සාමාන්‍යයෙන් උපකල්පනය කරන්නේ බොහෝ භාවිතයන් සඳහා බීජ ආදාන අගයන් RAM හි ගබඩා කර තිබීම ප්‍රමාණවත් බවයි (ව්‍යාජ අහඹු සංඛ්‍යා තවමත් ප්‍රයෝජනවත් වන්නේ එබැවිනි), නමුත් ඔබ බීජ ආදානය සහ අහඹු සංඛ්‍යා උත්පාදනය කිරීමට භාවිතා කරන ඇල්ගොරිතම දන්නේ නම්, ඊළඟට ජනනය වන සංඛ්‍යා මොනවාදැයි ඔබට අනාවැකි කිව හැක. සත්‍ය වශයෙන්ම අහඹු ලෙස සංඛ්‍යාවක් ජනනය කිරීමට, ඔබට සැබවින්ම අහඹු ආදාන ප්‍රභවයක් අවශ්‍ය වේ. ව්‍යාජ සසම්භාවී සංඛ්‍යා උත්පාදක යන්ත්‍ර (PRNG) සසම්භාවී සංඛ්‍යා උත්පාදනය කිරීමට ඇල්ගොරිතම භාවිතා කරන අතර, සත්‍ය සසම්භාවී සංඛ්‍යා උත්පාදකයක් (TRNG) පරිසරයේ භෞතික සංසිද්ධි මනින අතර, අනාවැකි කිව නොහැකි සත්‍ය වශයෙන්ම අහඹු සංඛ්‍යා ජනනය කිරීමට එම දත්ත භාවිතා කරයි. සත්‍ය වශයෙන්ම අහඹු සංඛ්‍යා ජනනය කිරීමට TRGN සඳහා විවිධ ක්‍රම තිබේ. දෘඪාංග සසම්භාවී අංකයක් ජනනය කිරීම සඳහා එක් තේරුම් ගැනීමට පහසු ක්‍රමයක් (එය ප්‍රායෝගිකව භාවිතා නොවේ, නමුත් ඒ මන්දැයි මම විනාඩියකින් දැනගනිමි) යනු හුදෙක් කාසියක් පෙරලන යන්ත්‍රයක් නිර්මාණය කිරීම සහ එය දෘෂ්‍යමය වශයෙන් තීරණය කළ හැකි ය. හිස් හෝ වලිග^0. එවිට එයට එක් එක් හැකියාව ද්විමය ඉලක්කමකට පැවරිය හැක (එනම්: හිස් 1, වලිගය 0), ඉන්පසු අවශ්‍ය බිටු ගණනක අහඹු සංඛ්‍යාවක් ලබා ගැනීමට අවශ්‍ය වාර ගණනක් කාසිය නැවත නැවතත් පෙරළන්න (එනම්: ඔබ නම් 8-bit අංකයක් අවශ්‍යයි, කාසිය 8 වතාවක් පෙරළන්න). ඔබට දැන් තේරුම් ගැනීමට සහ භාවිතා කිරීමට ඉතා සරල එකක් ඇත, TRNG. මෙම විශේෂිත TRNG (සහ සියලුම TRNG වලට විවිධ ප්‍රමාණයන්ට බලපාන) ගැටලුව නම්, කාසි පෙරලීම මන්දගාමී වීම සහ ප්‍රමාණවත් තරම් &quot;බිට්&quot; ජනනය වීමයි, විශේෂයෙන් අහඹු සංඛ්‍යා රාශියක් අවශ්‍ය වන ඇල්ගොරිතම සඳහා (මොන්ටේ කාලෝ සමාකරණ වැනි ) ගණනය කිරීම මන්දගාමී වනු ඇත. සැබෑ ලෝකයේ, ක්වොන්ටම් ගුණාංග (විකිරණශීලී ක්ෂය වීම මැනීම වැනි), තාප ගුණ, වායුගෝලීය ශබ්දය, ගුවන්විදුලි ශබ්දය ආදිය භාවිතා කරන අනෙකුත් මැනීමට පහසු සහ වේගවත් පද්ධති තිබේ. අපක්ෂපාතී ලෙස සැලකේ (එනම්: එය සමාන අනුපාතයකින් හිස් සහ වලිග ජනනය කළේය), විකිරණශීලී ක්ෂය වීම මැනීම වැනි වෙනත් ක්‍රම සම්බන්ධයෙන් මෙය සත්‍ය නොවේ. විකිරණශීලී ක්ෂය වීමේදී, ක්ෂය නොවන සිදුවීම් හා සසඳන විට ක්ෂය වීමේ සිදුවීම් කලාතුරකින් සිදුවන බව ඔබට පෙනී යා හැකිය. මෙයට එරෙහිව සටන් කිරීම සඳහා, එක් ප්‍රතිඵලයක් මත තවත් ප්‍රතිඵලයක් කෙරෙහි නැඹුරුවක් ඇති භෞතික ගුණාංග &quot;සුදු වීමක්&quot; ලෙස හැඳින්වේ. John von Neumann විසින් පළමු whitening algorithm එකක් යෝජනා කරන ලදී, එය දෘශ්‍යමාන කිරීමට තරමක් පහසු ය: ඔබ කියවන්නේ පක්ෂග්‍රාහී අහඹු බිටු යුගලයකින්. බිටු දෙකම සමාන නම්, ඔබ ඒවා ඉවතලන්න (සහ කිසිවක් ආපසු නොදෙන්න). බිටු දෙක [0,1] නම්, ඔබ 0 ආපසු ලබා දෙයි. බිටු දෙක [1,0] නම්, ඔබ 1 ආපසු ලබා දෙයි. එවැනි ඇල්ගොරිතමයක් ඔබේ භෞතික මිනුම් පද්ධතියේ පවතින ඕනෑම නැඹුරුවකින් ඔබව ඉවත් කරයි. ඉහත තරමක් දක්වා ඇති පරිදි, TRNG වල ඇති විශාල ගැටළුව නම්, ඒවා තරමක් මන්දගාමී වීමට නැඹුරු වීමයි, සහ ඇතැම් ආකාරයේ කාර්යයන් සඳහා ප්‍රමාණවත් බිටු සංඛ්‍යාවක් ගොඩනැගීමට යම් කාලයක් ගත විය හැක. බොහෝ සැකසුම් වේගය _සහ_ හොඳ අහඹු සංඛ්‍යා අවශ්‍ය වන ඇල්ගොරිතම සහ කාර්යයන් සඳහා, බොහෝ විට TRNG PRNG සමඟ ඒකාබද්ධ කිරීම වඩාත් සුදුසුය, එනම් TRNG විසින් නියමිත කාල පරාසයන් තුළ PRNG වෙත බීජය ලෙස ක්‍රියා කිරීමට බිටු නිපදවයි. උදාහරණයක් ලෙස, ඔබට තත්පරයකට අහඹු බිටු 100 ක් ජනනය කළ හැකි TRNG තිබේ නම්, නමුත් ඔබට තත්පරයකට අහඹු බිටු 10 000 ක් අවශ්‍ය වන ක්‍රියාවලියක් තිබේ නම්, ඔබට PRNG සඳහා බීජ ලබා දීමට TRNG භාවිතා කළ හැකිය, ප්‍රතිදානය භාවිතා කරන්න ඔබේ ඇල්ගොරිතමයේ PRNG, ඉන්පසු සෑම තත්පර කිහිපයකට වරක් ඔබ TRNG වෙතින් ප්‍රමාණවත් බිටු සංචිතයක් නැවත උත්පාදනය කරන විට, TRNG වෙතින් බිටු සමඟ PRNG නැවත බීජ කරන්න (PRNG බීජයක් ලෙස හරියටම බිටු 100ක් ගන්නේ නම්, ඔබට නැවත- සෑම තත්පරයකට වරක් PRNG බීජ කරන්න). මෙය උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි! ----- ^0 -- යථාර්තවාදීව, ඔබ එවැනි යන්ත්‍රයක් සාදා ගන්නේ නම්, ඔබ පරිගණකයට ඉහළට ඇත්තේ කුමන පැත්තද යන්න තීරණය කිරීම පහසු කිරීම සඳහා කාසිය එක් පැත්තකින් සුදු සහ අනෙක් පැත්තෙන් කළු බවට පත් කරනු ඇත.