Follow TV Tropes

Following

History MediaNotes / RandomNumberGenerator

Go To

OR

Is there an issue? Send a MessageReason:
None


In TabletopGames (such as ''TabletopGame/DungeonsAndDragons''), events and their magnitude can be determined by a simple throw of the UsefulNotes/{{dice}}; VideoGames use a similar mechanism which is usually much less transparent to the user. As these rolls are hidden, a common form of FakeDifficulty is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often than it does for you]].

to:

In TabletopGames (such as ''TabletopGame/DungeonsAndDragons''), events and their magnitude can be determined [[GameplayRandomization randomized]] by a simple throw of the UsefulNotes/{{dice}}; VideoGames use a similar mechanism which is usually much less transparent to the user. As these rolls are hidden, a common form of FakeDifficulty is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often than it does for you]].
Is there an issue? Send a MessageReason:
Eliminated red links


Note that almost all computer systems are incapable of producing truly "random" numbers on their own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer (It should be noted that one make of x86 [=CPU=], [=VIA=], does have a built-in hardware random number generator that uses line-noise on a certain area of the chip to produce truly random data, but their [=CPU=]s are all designed for use in low-power applications such as netbooks). As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day (down to the microsecond) when the program started. Which of course is everything but random.

to:

Note that almost all computer systems are incapable of producing truly "random" numbers on their own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer computer. (It should be noted that one make of x86 [=CPU=], [=VIA=], does have a built-in hardware random number generator that uses line-noise on a certain area of the chip to produce truly random data, but their [=CPU=]s [=CPUs=] are all designed for use in low-power applications such as netbooks). netbooks.) As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day (down to the microsecond) when the program started. Which of course is everything but random.



Some games look to other sources for a seed value. For example, the [[GameBoyAdvance GBA]] game ''VideoGame/GoldenSun'' based its [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} or the {{Infinity Plus One Sword}} - then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] than one using the timer as a seed.

to:

Some games look to other sources for a seed value. For example, the [[GameBoyAdvance [[UsefulNotes/GameBoyAdvance GBA]] game ''VideoGame/GoldenSun'' based its [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - on. That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} VendorTrash or the {{Infinity Plus One Sword}} - InfinityPlusOneSword – then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] than one using the timer as a seed.



The modern standard for pesuedorandom number generators (PRNGs) is the Mersenne Twister which passes numerous rigorous tests of statistical randomness and is the default algorithm for a variety of languages. Cryptographically secure RNGs are vastly more difficult to build since even if they draw random values from a physical source they could be compromised by someone tampering with or monitoring that source. Consequently CSRNGs typically gathering entropy (random information) from a variety of sources, combine it, then use that as a seed for a PRNG.

to:

The modern standard for pesuedorandom pseudorandom number generators (PRNGs) ([=PRNGs=]) is the Mersenne Twister Twister, which passes numerous rigorous tests of statistical randomness and is the default algorithm for a variety of languages. Cryptographically secure RNGs [=RNGs=] are vastly more difficult to build since even if they draw random values from a physical source source, they could be compromised by someone tampering with or monitoring that source. Consequently CSRNGs Consequently, [=CSRNGs=] typically gathering gather entropy (random information) from a variety of sources, combine it, then use that as a seed for a PRNG.
Is there an issue? Send a MessageReason:
None


In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on several occasions. The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the numbers it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to the popularity of the [[UsefulNotes/MainframesAndMinicomputers IBM hardware]] and software that were supplied with it[[note]]RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.[[/note]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.

to:

In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on several occasions. The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the numbers it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to the popularity of the [[UsefulNotes/MainframesAndMinicomputers IBM hardware]] and software that were supplied with it[[note]]RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.[[/note]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.them.

The modern standard for pesuedorandom number generators (PRNGs) is the Mersenne Twister which passes numerous rigorous tests of statistical randomness and is the default algorithm for a variety of languages. Cryptographically secure RNGs are vastly more difficult to build since even if they draw random values from a physical source they could be compromised by someone tampering with or monitoring that source. Consequently CSRNGs typically gathering entropy (random information) from a variety of sources, combine it, then use that as a seed for a PRNG.
Is there an issue? Send a MessageReason:
None


In TabletopGames (such as ''TabletopGame/DungeonsAndDragons''), events and their magnitude can be determined by a simple throw of the dice; VideoGames use a similar mechanism which is usually much less transparent to the user. As these rolls are hidden, a common form of FakeDifficulty is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often than it does for you]].

to:

In TabletopGames (such as ''TabletopGame/DungeonsAndDragons''), events and their magnitude can be determined by a simple throw of the dice; UsefulNotes/{{dice}}; VideoGames use a similar mechanism which is usually much less transparent to the user. As these rolls are hidden, a common form of FakeDifficulty is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often than it does for you]].
Is there an issue? Send a MessageReason:
None


One method commonly employed was to start a timer when the console powered up, then grab the current value from that as required. Another method was to modify the current random value by a number based on the controller input each frame. This would appear random to the user. However, through {{Emulation}}, one can actually determine the algorithm in question by reverse-engineering and then provide controller input to get whatever random number you want. In tool-assisted speed running, this is known as "luck manipulation".

to:

One method commonly employed was to start a timer when the console powered up, then grab the current value from that as required. Another method was to modify the current random value by a number based on the controller input each frame. This would appear random to the user. However, through {{Emulation}}, UsefulNotes/{{Emulation}}, one can actually determine the algorithm in question by reverse-engineering and then provide controller input to get whatever random number you want. In tool-assisted speed running, this is known as "luck manipulation".
Is there an issue? Send a MessageReason:
None


In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on several occasions. The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the numbers it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to the popularity of the [[MainframesAndMinicomputers IBM hardware]] and software that were supplied with it[[note]]RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.[[/note]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.

to:

In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on several occasions. The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the numbers it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to the popularity of the [[MainframesAndMinicomputers [[UsefulNotes/MainframesAndMinicomputers IBM hardware]] and software that were supplied with it[[note]]RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.[[/note]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.
Is there an issue? Send a MessageReason:
time is not random


Note that almost all computer systems are incapable of producing truly "random" numbers on their own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer (It should be noted that one make of x86 [=CPU=], [=VIA=], does have a built-in hardware random number generator that uses line-noise on a certain area of the chip to produce truly random data, but their [=CPU=]s are all designed for use in low-power applications such as netbooks). As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day (down to the microsecond) when the program started.

to:

Note that almost all computer systems are incapable of producing truly "random" numbers on their own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer (It should be noted that one make of x86 [=CPU=], [=VIA=], does have a built-in hardware random number generator that uses line-noise on a certain area of the chip to produce truly random data, but their [=CPU=]s are all designed for use in low-power applications such as netbooks). As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day (down to the microsecond) when the program started.
started. Which of course is everything but random.
Is there an issue? Send a MessageReason:
None


In {{Tabletop Games}} (such as {{Dungeons And Dragons}}) events and their magnitude can be determined by a simple throw of the dice; {{Video Games}} use a similar mechanism which is usually much less transparent to the user. As these rolls are hidden, a common form of {{Fake Difficulty}} is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often than it does for you]].

For example, {{Role Playing Game}}s will commonly use a random number generator to determine if a blow landed in combat. If so, the random number generator might then be called again to determine if it is a {{Critical Hit}} or not; then yet again to determine what percentage of the character's maximum attack power will be applied to the enemy.

to:

In {{Tabletop Games}} TabletopGames (such as {{Dungeons And Dragons}}) ''TabletopGame/DungeonsAndDragons''), events and their magnitude can be determined by a simple throw of the dice; {{Video Games}} VideoGames use a similar mechanism which is usually much less transparent to the user. As these rolls are hidden, a common form of {{Fake Difficulty}} FakeDifficulty is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often than it does for you]].

For example, {{Role Playing Game}}s will commonly use a random number generator to determine if a blow landed in combat. If so, the random number generator might then be called again to determine if it is a {{Critical Hit}} CriticalHit or not; then yet again to determine what percentage of the character's maximum attack power will be applied to the enemy.
Is there an issue? Send a MessageReason:
note about benefits of seed reuse

Added DiffLines:

One convenient result is that the seed can be reused when you want the exact same sequence of random numbers again. This is useful for things like recorded gameplay and [[ProceduralGeneration procedurally generated]] content.
Is there an issue? Send a MessageReason:
None


Note that almost all computer systems are incapable of producing truly "random" numbers on their own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer. As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day (down to the microsecond) when the program started.

to:

Note that almost all computer systems are incapable of producing truly "random" numbers on their own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer.computer (It should be noted that one make of x86 [=CPU=], [=VIA=], does have a built-in hardware random number generator that uses line-noise on a certain area of the chip to produce truly random data, but their [=CPU=]s are all designed for use in low-power applications such as netbooks). As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day (down to the microsecond) when the program started.
Is there an issue? Send a MessageReason:
Hottip cleanup


In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on several occasions. The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the numbers it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to the popularity of the [[MainframesAndMinicomputers IBM hardware]] and software that were supplied with it[[hottip:*:RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.

to:

In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on several occasions. The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the numbers it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to the popularity of the [[MainframesAndMinicomputers IBM hardware]] and software that were supplied with it[[hottip:*:RANDU it[[note]]RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.]], [[/note]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.

Changed: 711

Removed: 706

Is there an issue? Send a MessageReason:
None


In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on several occasions.

The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the number it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to popularity if the [[MainframesAndMinicomputers IBM hardware]] and software that were supplied with it[[hottip:*:RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.

to:

In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on several occasions. \n\n The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the number numbers it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to the popularity if of the [[MainframesAndMinicomputers IBM hardware]] and software that were supplied with it[[hottip:*:RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.
Is there an issue? Send a MessageReason:
None


In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand it is trivially easy to [[DarthWiki/IdiotProgramming write random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on the several occasions.

to:

In any modern well written program, the "random" number is generally random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand hand, it is trivially easy to [[DarthWiki/IdiotProgramming write a random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on the several occasions.
Is there an issue? Send a MessageReason:
Better?


In any modern well written program, the "random" number is generally random. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand it is trivially easy to [[DarthWiki/IdiotProgramming write random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on the several occasions.

to:

In any modern well written program, the "random" number is generally random.random enough. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand it is trivially easy to [[DarthWiki/IdiotProgramming write random number generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on the several occasions.
Is there an issue? Send a MessageReason:
None


Some games look to other sources for a seed value. For example, the [[GameBoyAdvance GBA]] game ''VideoGame/GoldenSun}'' based its [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} or the {{Infinity Plus One Sword}} - then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] than one using the timer as a seed.

to:

Some games look to other sources for a seed value. For example, the [[GameBoyAdvance GBA]] game ''VideoGame/GoldenSun}'' ''VideoGame/GoldenSun'' based its [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} or the {{Infinity Plus One Sword}} - then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] than one using the timer as a seed.
Is there an issue? Send a MessageReason:
None


Note that almost all computer systems are incapable of producing truly "random" numbers on their own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer. As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day when the program started.

to:

Note that almost all computer systems are incapable of producing truly "random" numbers on their own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer. As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day (down to the microsecond) when the program started.
Is there an issue? Send a MessageReason:
None


Some games look to other sources for a seed value. For example, the [[GameBoyAdvance GBA]] versions ''{{Golden Sun}}'' based their [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} or the {{Infinity Plus One Sword}} - then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] than one using the timer as a seed.

to:

Some games look to other sources for a seed value. For example, the [[GameBoyAdvance GBA]] versions ''{{Golden Sun}}'' game ''VideoGame/GoldenSun}'' based their its [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} or the {{Infinity Plus One Sword}} - then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] than one using the timer as a seed.
Is there an issue? Send a MessageReason:
None


Note that computer systems are incapable of producing truly "random" numbers on their own - hence the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day when the program started.

to:

Note that almost all computer systems are incapable of producing truly "random" numbers on their own - hence own. Some have [[http://en.wikipedia.org/wiki/Hardware_random_number_generator special hardware]] which can achieve this, but you'd be hard-pressed to find such hardware in a home computer. As such, the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day when the program started.
Is there an issue? Send a MessageReason:
None


The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the number it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to popularity if the [[MainframesAndMinicomputers IBM hardware]] and software that were supplied with it,[[hottip:*:RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.]] it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.

to:

The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the number it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to popularity if the [[MainframesAndMinicomputers IBM hardware]] and software that were supplied with it,[[hottip:*:RANDU it[[hottip:*:RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.]] ]], it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.

Added: 706

Changed: 516

Is there an issue? Send a MessageReason:
None


In any modern well written program, the "random" number is generally random. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand it is trivially easy to write random number generator ''wrong'', and it ''was'' done on the several occasions. The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the number it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to popularity if the IBM hardware, it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.

to:

In any modern well written program, the "random" number is generally random. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand it is trivially easy to [[DarthWiki/IdiotProgramming write random number generator ''wrong'', generator]] ''[[DarthWiki/IdiotProgramming wrong]]'', and it ''was'' done on the several occasions. occasions.

The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the number it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to popularity if the [[MainframesAndMinicomputers IBM hardware, hardware]] and software that were supplied with it,[[hottip:*:RANDU was a part of the FORTRAN scientific library that was bundled with IBM System/360 mainframe, ''the'' most popular, used and cloned computer of the "Big Iron" era.]] it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.
Is there an issue? Send a MessageReason:
None


In any modern well written program, the "random" number is generally random. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs.

to:

In any modern well written program, the "random" number is generally random. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs. On the other hand it is trivially easy to write random number generator ''wrong'', and it ''was'' done on the several occasions. The best known (and most reviled) of them is the infamous IBM-designed RANDU, which failed even the most relaxed definition of the RNG (such as that the number it generates must be spread uniformly over the range, which they weren't). Unfortunately, due to popularity if the IBM hardware, it was ''the'' most widespread RNG of TheSixties and TheSeventies, and even now a lot of scientific results in computing are suspect because it was used to get them.
Is there an issue? Send a MessageReason:
None


One method commonly employed was to start a timer when the console powered up, then grab the current value from that as required. Another method was to modify the current random value by a number based on the controller input each frame. This would appear random to the user. However, through {{Emulation}}, one can actually determine the algorithm in question and then provide controller input to get whatever random number you want. In tool-assisted speed running, this is known as "luck manipulation".

to:

One method commonly employed was to start a timer when the console powered up, then grab the current value from that as required. Another method was to modify the current random value by a number based on the controller input each frame. This would appear random to the user. However, through {{Emulation}}, one can actually determine the algorithm in question by reverse-engineering and then provide controller input to get whatever random number you want. In tool-assisted speed running, this is known as "luck manipulation".
Is there an issue? Send a MessageReason:
None


On the other hand, it could be argued that a sufficiently skilled player could roll dice in a manner that would guarantee certain results... It is, after all, simple physics that determines which way up they'll face. Regardless, it's very difficult to determine the outcome of a roll before making one, and so dice rolls are usually assumed to be "truly" random. In practise, which is more "random" usually boils down to how many opportunities there are to cheat. It's also commonly argued that all values are hand-picked by the {{Random Number God}} anyway, hence rendering the mechanics moot.

to:

On the other hand, it could be argued that a sufficiently skilled player could roll dice in a manner that would guarantee certain results... It is, after all, simple physics that determines which way up they'll face. Regardless, it's very difficult to determine the outcome of a roll before making one, and so dice rolls are usually assumed to be "truly" random. In practise, which is more "random" usually boils down to how many opportunities there are to cheat. It's also commonly argued that all values are hand-picked by the {{Random Number God}} anyway, hence rendering the mechanics moot.moot.

In any modern well written program, the "random" number is generally random. Only in the case of encryption (where massive computer power can be harnessed to discover and exploit the tiniest flaw) would there be any problem. Programmers who have the knowledge and desire to do so can ensure that any computer game has all the randomness it needs.
Is there an issue? Send a MessageReason:
in the context of tool-assisted speedruns, it is called \"luck manipulation\" (and is definitely NOT called \"luck management\")


One method commonly employed was to start a timer when the console powered up, then grab the current value from that as required. Another method was to modify the current random value by a number based on the controller input each frame. This would appear random to the user. However, through {{Emulation}}, one can actually determine the algorithm in question and then provide controller input to get whatever random number you want. In tool-assisted speed running, this kind of manipulation is called "luck management".

to:

One method commonly employed was to start a timer when the console powered up, then grab the current value from that as required. Another method was to modify the current random value by a number based on the controller input each frame. This would appear random to the user. However, through {{Emulation}}, one can actually determine the algorithm in question and then provide controller input to get whatever random number you want. In tool-assisted speed running, this kind of manipulation is called known as "luck management".
manipulation".

Added: 521

Changed: 309

Is there an issue? Send a MessageReason:
None


This works rather well with traditional computer systems, where the time will be different every time you start a program (making it very difficult for the user to predict the seed used, especially if a program re-picks one every time it calls the random number generator), but older video game consoles didn't ''know'' the time of day. Instead, it was common to start a timer when the console powered up, then grab the current value from that as required. This could, however, lead to predictable results if a player had good enough timing (indeed, the use of saves states through {{Emulation}} made this trivial, as they also reverted the timer value when restored).

to:

This works rather well with traditional computer systems, where the time will be different every time you start a program (making it very difficult for the user to predict the seed used, especially if a program re-picks one every time it calls the random number generator), but older video game consoles didn't ''know'' the time of day. Instead, it So they had to use certain tricks.

One method commonly employed
was common to start a timer when the console powered up, then grab the current value from that as required. Another method was to modify the current random value by a number based on the controller input each frame. This could, however, lead would appear random to predictable results if a player had good enough timing (indeed, the use of saves states user. However, through {{Emulation}} made {{Emulation}}, one can actually determine the algorithm in question and then provide controller input to get whatever random number you want. In tool-assisted speed running, this trivial, as they also reverted the timer value when restored).
kind of manipulation is called "luck management".
Is there an issue? Send a MessageReason:
None


For example, {{RolePlayingGame}}s will commonly use a random number generator to determine if a blow landed in combat. If so, the random number generator might then be called again to determine if it is a {{Critical Hit}} or not; then yet again to determine what percentage of the character's maximum attack power will be applied to the enemy.

to:

For example, {{RolePlayingGame}}s {{Role Playing Game}}s will commonly use a random number generator to determine if a blow landed in combat. If so, the random number generator might then be called again to determine if it is a {{Critical Hit}} or not; then yet again to determine what percentage of the character's maximum attack power will be applied to the enemy.
Is there an issue? Send a MessageReason:
using a 'fresh seed' for every roll is a pretty good way to be not very random, or at least isn't best practice


Whether a video game using a timer-based random number generator is more "random" than a real set of dice is debatable. In practise, so long as the program is using a fresh seed every time it performs a roll, and the player doesn't know what that seed is ahead of time, there should be no way to consistently predicting the outcome of a decent-coded random number generator. If the seed ''is'' predictable, then the results of the random number generator are, too.

to:

Whether a video game using a timer-based random number generator is more "random" than a real set of dice is debatable. In practise, so long as the program is using a fresh seed every time it performs a roll, starts, and the player doesn't know what that seed is ahead of time, there should be no way to consistently predicting the outcome of a decent-coded random number generator. If the seed ''is'' predictable, then the results of the random number generator are, too.
Is there an issue? Send a MessageReason:
than


In {{Tabletop Games}} (such as {{Dungeons And Dragons}}) events and their magnitude can be determined by a simple throw of the dice; {{Video Games}} use a similar mechanism which is usually much less transparent to the user. As these rolls are hidden, a common form of {{Fake Difficulty}} is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often then it does for you]].

to:

In {{Tabletop Games}} (such as {{Dungeons And Dragons}}) events and their magnitude can be determined by a simple throw of the dice; {{Video Games}} use a similar mechanism which is usually much less transparent to the user. As these rolls are hidden, a common form of {{Fake Difficulty}} is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often then than it does for you]].



Some games look to other sources for a seed value. For example, the [[GameBoyAdvance GBA]] versions ''{{Golden Sun}}'' based their [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} or the {{Infinity Plus One Sword}} - then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] then one using the timer as a seed.

Whether a video game using a timer-based random number generator is more "random" then a real set of dice is debatable. In practise, so long as the program is using a fresh seed every time it performs a roll, and the player doesn't know what that seed is ahead of time, there should be no way to consistently predicting the outcome of a decent-coded random number generator. If the seed ''is'' predictable, then the results of the random number generator are, too.

to:

Some games look to other sources for a seed value. For example, the [[GameBoyAdvance GBA]] versions ''{{Golden Sun}}'' based their [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} or the {{Infinity Plus One Sword}} - then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] then than one using the timer as a seed.

Whether a video game using a timer-based random number generator is more "random" then than a real set of dice is debatable. In practise, so long as the program is using a fresh seed every time it performs a roll, and the player doesn't know what that seed is ahead of time, there should be no way to consistently predicting the outcome of a decent-coded random number generator. If the seed ''is'' predictable, then the results of the random number generator are, too.
Is there an issue? Send a MessageReason:
None


In {{Tabletop Games}} (such as {{Dungeons And Dragons}}) events and their magnitude can be determined by a simple throw of the dice; {{Video Games}} use a similar mechanism which is usually much more transparent to the user. As these rolls are hidden, a common form of {{Fake Difficulty}} is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often then it does for you]].

to:

In {{Tabletop Games}} (such as {{Dungeons And Dragons}}) events and their magnitude can be determined by a simple throw of the dice; {{Video Games}} use a similar mechanism which is usually much more less transparent to the user. As these rolls are hidden, a common form of {{Fake Difficulty}} is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often then it does for you]].

Added: 3035

Changed: 418

Is there an issue? Send a MessageReason:
Moving from Main Namespace


Click the edit button to start this new page.

to:

Click In {{Tabletop Games}} (such as {{Dungeons And Dragons}}) events and their magnitude can be determined by a simple throw of the edit button dice; {{Video Games}} use a similar mechanism which is usually much more transparent to the user. As these rolls are hidden, a common form of {{Fake Difficulty}} is to have the random number generator roll in favour of a computer player [[TheComputerIsACheatingBastard more often then it does for you]].

For example, {{RolePlayingGame}}s will commonly use a random number generator to determine if a blow landed in combat. If so, the random number generator might then be called again to determine if it is a {{Critical Hit}} or not; then yet again to determine what percentage of the character's maximum attack power will be applied to the enemy.

Note that computer systems are incapable of producing truly "random" numbers on their own - hence the random number generator is usually producing a series of numbers based on an initial "seed" value. This "seed" is assumed to be "truly" random, and often will be the time of day when the program started.

This works rather well with traditional computer systems, where the time will be different every time you start a program (making it very difficult for the user to predict the seed used, especially if a program re-picks one every time it calls the random number generator), but older video game consoles didn't ''know'' the time of day. Instead, it was common
to start a timer when the console powered up, then grab the current value from that as required. This could, however, lead to predictable results if a player had good enough timing (indeed, the use of saves states through {{Emulation}} made this new page. trivial, as they also reverted the timer value when restored).

Some games look to other sources for a seed value. For example, the [[GameBoyAdvance GBA]] versions ''{{Golden Sun}}'' based their [[RandomlyDrops random drops]] on the enemies you fought, how your party was equipped, the turn order throughout the battle, and so on - That is to say, if a player managed to win an item as a random drop using certain battle tactics - be it {{Vendor Trash}} or the {{Infinity Plus One Sword}} - then repeating the battle against the same monsters with the same tactics would be ''guaranteed'' to give the same reward. This made the random number generator [[GameBreaker far easier to exploit]] then one using the timer as a seed.

Whether a video game using a timer-based random number generator is more "random" then a real set of dice is debatable. In practise, so long as the program is using a fresh seed every time it performs a roll, and the player doesn't know what that seed is ahead of time, there should be no way to consistently predicting the outcome of a decent-coded random number generator. If the seed ''is'' predictable, then the results of the random number generator are, too.

On the other hand, it could be argued that a sufficiently skilled player could roll dice in a manner that would guarantee certain results... It is, after all, simple physics that determines which way up they'll face. Regardless, it's very difficult to determine the outcome of a roll before making one, and so dice rolls are usually assumed to be "truly" random. In practise, which is more "random" usually boils down to how many opportunities there are to cheat. It's also commonly argued that all values are hand-picked by the {{Random Number God}} anyway, hence rendering the mechanics moot.

Top