Non-Deterministic Random Number Generator
Pause
Settings

Max count of random numbers to write per file (<= 5,000):


#Files Written: 0
File completion: 0%


*Files will be written to the downloads folder once the max random number list size has been reached.


X

NDRNG

Version 1.2
Overview:
This is a non-deterministic random number generator which uses a combination of a pseudo-random number generator and different entropy sources (server entropy and internet traffic timings) to produces a random number source that cannot practically be predicted based on previous output. The generator has passed various tests of randomness and there are plans to test it against some other well-known tests for randomness.

Note that since this generator does make use of a pseudo-random number generator, it would not be a good choice for cryptographic applications.

Randomness:
Two key requirements of randomness are:
This random number generator exhibits both of these requirements of randomness.

Features:
The moving black and white stream of squares at the top provide a visual representation of the random data used to build the random numbers displayed. This sequence of blocks correspond to random bits, where each bit can have two states of information (black/white in this case). If you click on the sequence it will instead display a sequence of 0's and 1's. When the speed of the display of these bits exceeds a certain threshold, it is reduced via sampling.

Near the center of the page there are entry fields for determing the range of random values produced. It defaults to a minimum value of 1 and a maximum value of 100 with 0 decimal places. You can vary this to produce random numbers in a different range. The random numbers produced appear in a moving string of numbers above these entry fields. The most current value appears in a large font near the top of the page. You can modify the input fields to produce random numbers with a maximum range of 100 trillion. Values may be negative and may contain a decimal point. Random numbers produced will be in the range from low value to high value inclusive.

Example random number inputs:
LowHighDecimalsRand# Range
3923.00 - 9.00
3.009.9923.00 - 9.99
-550-5 - 5
-10-80-10 - -8
0120.00 - 1.00
099999999.99999960.000000 - 99999999.999999
00.99999999999999140.00000000000000 - 0.99999999999999
0.90.999999999999999150.900000000000000 - 0.999999999999999


Bits are combined to produce random numbers in the range given by the entry fields. For example, for 0 decimal places, if the minimum value selected is 0 and the maximum value selected is 1, then random numbers between 0 and 1 inclusive are produced, where each random number requires one bit to generate. For a range of 0 to 3, this covers four values and this can be generated by two bits since the combination of two bits creates four distinct values (00, 01, 10, 11). More bits are needed to cover larger ranges. Also, in general, larger ranges in random numbers will be slower to generate than smaller ranges.

The application starts by automatically producing random numbers. Clicking on the yellow "Pause" button will stop this until the green "Go" button is clicked. When clicking the "Pause" button you may notice a slight delay (depending upon the speed) before the random generation stops. This is by design so that the last random number displayed will not be the same one you see when you click the "Pause" button. This facilitates using this application for games such as "pick a number between 1 and 10", etc by ensuring that the person clicking on the "Pause" button cannot wait until they see a number they want.

NOTE: If you pause processing for long enough, the connection will time out and random number generation will stop. You will need to refresh or reopen the application to begin again in that case.

The "|<<", "<<", ">>", and ">>|" buttons (just under the Pause/Go button) control the speed of random number generation. These buttons correspond to "slowest", "slower", "faster", and "fastest" respectively. Below these buttons is information on the current speed (as a percentage from 0 to 100) as well as the average speed in bits per second. The application defaults to 50% speed generation when first started. It ranges from 0% (slowest speed) to 100% (fastest speed). It may seem counterintuitive, but 0% does not mean 'stopped', but only that speed generation is at its slowest.

To the left of the Go/Pause button is a "Settings" button (shown as a gear icon). When clicked, this shows a modal dialog of settings. Currently it shows settings associated with writing the list of random numbers generated to a file on your computer. Checking the checkbox next to "Write Random Number List to file" will display related options. You can set the maximum count of random numbers to write to the file (up to 5,000). It also shows the current file completion and the number of files written so far.

To the right of the Go/Pause button is a "Help" button (shown as a question mark icon), which displays a modal dialog showing this information you are now reading.

Below the entry fields for the min, max and decimal places of the random number list, there is information shown about the random numbers produced. This includes how many random numbers have been generated thus far, the average number of bits used to create each random number, and the speed of random number generation in random numbers per second.

Below that, you will see bit-level information. This includes a count of the number of bits generated, and a breakdown of how many 0-bits and 1-bits and their percentages.

After that you will see information about the average random number value thus far as well as the ideal average expected over a large number of random numbers.

The 'Advanced' checkbox displays some additional features. When clicked, just under the random number range entry fields you will see the following checkboxes: The "Reset All" button near the bottom of the page will cause random number generation and related information (such as counts and percentages, etc) to start over from the beginning.

And finally, there is a "Buy me a coffee" button. Clicking this takes you to a page where you can contribute toward the continuance of this website and my creative endeavors. Please consider donating. Thanks.

Enjoy!
Visit www.artbylogic.com
Array Bit Queue Size:
   Pings: 0
 (Ping Responses: )
|<<
<<
>>
>>|
Speed Scale: %
Avg Speed: bits per second bps
to with decimal places :
Cycle Completion: %
#Cycles:
cycle(s).

random numbers
bits per random number
random numbers per second
Bit 0 Bias: %
Bit 1 Bias: %
#Bits:
#0's: (%)
#1's: (%)
 △%
(
)
#Distinct Rand Values:

Rand# SD:
Discrete Uniform Distribution SD:
Continuous Uniform Distribution SD:
Reset All
Reset

Graph updated every random numbers generated.
Data Display:

Reset
Sampling Distribution of the Mean:
Mean Std Dev:
Samples per Mean:

#Means Calculated:  (%)
Completed Sample Mean:

Mean of Means:
Bin Count:
#Bins:
Bin Width:
#Distinct Possible Values per Bin:

#Outliers: 0 (< or ≥ )

Actual Data Display:
* For large enough Samples per Mean sample size (>= 30) (and with enough samples), the distribution of the data should look more and more like the Normal Distribution (Bell Curve). For a sample size of 1, the data will resemble a condensed version of the Frequency vs. Rand# Graph above, since it is not actually a mean as it has only one sample value. For a sample size of 2, the data will look like a symmetric triangle. For other sample sizes below 30, the data resembles a slightly squished bell curve, where the top of the curve is a little below the normal curve. For samples sizes of 30 and above, the actual data very closely compares to the normal curve.

Reset
#Dice:
#Sides per Die:
#Dice Rolls: 0

Min Sum Dice Roll:
Max Sum Dice Roll:
Mean:  Std Dev:

Highest Probability Dice Roll Sum(s):  (%)

Dice Sums

Actual Data Display:
Expected Data Display:


artbylogic.com