The Drawzone RANDOM NUMBER GENERATOR

About us

What does it take to nurture trust among folks for a new highly innovative system?

The answer is “A fair and transparent system certified by global leaders of the industry”

Welcome to the THEDRAWZONE , the platform for drawing true random numbers. Developed and designed by the R&D team of Betmacan Limited, the RNG module of THEDRAWZONE is certified by the none other than Itech Labs, Australia. The proven authenticity of randomly generated number is instrumental in building trust for gamers.

What did Itech Labs certify?

Itech Labs carried out rigorous testing and analyzed large data samples to confirm the accuracy and authenticity of the RNG module of MLP. Then they certified that the number drawn online is generated by RNG algorithm which is fair and truly random.

THEDRAWZONE uses this number to serve gaming application like MLP where players put stakes on their lucky numbers. The wins and losses are decided on the basis of what Random number is generated on THEDRAWZONE 's website.

Betmacan innovates to develop a cutting edge technology to create a customer centric system. We aim to make THEDRAWZONE the largest independent RNG platform which offers fair and trusted RNG, fan engagement and many more features in the roadmap.

The website THEDRAWZONE declares a random number every hour as its result. the gaming applications subscribed to it get the outcome in their website/application for the subscribed Drawevents.

THEDRAWZONE draws 24 DrawEvent outcomes as specified below:

S.No. DRAWEVENT DRAWEVENT TIME
1 SILVER 00:01:00 GMT
2 ICECOOL 01:00:00 GMT
3 FUSION 02:00:00 GMT
4 PRISM 03:00:00 GMT
5 TOPAZ 04:00:00 GMT
6 SOLAN 05:00:00 GMT
7 KING 06:00:00 GMT
8 ENJOY 07:00:00 GMT
9 IVORY 08:00:00 GMT
10 FREEDOM 09:00:00 GMT
11 EMERALD 10:00:00 GMT
12 ICE 11:00:00 GMT
13 DIAMOND 12:00:00 GMT
14 SONG 13:00:00 GMT
15 DREAM 14:00:00 GMT
16 RUBY 15:00:00 GMT
17 PYRAMID 16:00:00 GMT
18 FORTUNE 17:00:00 GMT
19 ACE 18:00:00 GMT
20 ROYAL 19:00:00 GMT
21 AROMA 20:00:00 GMT
22 EMPEROR 21:00:00 GMT
23 PLATINUM 22:00:00 GMT
24 PEARL 23:00:00 GMT
How it happens?

Every hour the inbuilt system triggers process to run the RNG system to generate sets of true random numbers in three steps. The process takes place online and is available to everybody to see it happening live! It’s indeed an absolute transparent system par excellence!

Step 1: The draw system generates a set of two-digit random numbers. This set contains 10 unique numbers.
Step 2: The system randomly selects 5 unique numbers out of the set of 10 numbers.
Step 3: In the final step the system randomly selects the winning number of the drawevent. The winning number is randomly picked by the system from the set of 5 numbers.

Each number is displayed in 2-digit format. The right-side digit (indicated as “R”) and the left-side digit (indicated as “L”). For example in the number 52, “5” is L and “2” is R.

The speed and timing of displaying draw results may slightly vary on different devices and internet speeds.
The last event and the upcoming event are displayed on the THEDRAWZONE website. There is countdown to the next drawevent to keep users informed all the time.
An online report of earlier drawevents is available on the website. One can see the respective results with respective to GMT as well as according to desired country’s time zone.

Tech aspect explained:

TheDrawZone has been tested by the best in the industry. After passing a number of tests over millions of data THEDRAWZONE  has earned a reliability standard. THEDRAWZONE  has accomplished a benchmark which speaks of undisputed fairness. The benchmark has been achieved after successfully passing a series of rigorous testing algorithms. THEDRAWZONE  has employed two level testing. 1st level testing has been done by the R&D team of Betmacan Limited. The second level of testing has been done by the Itech Labs Australia.

A brief glimpse of the technical tests results has been mentioned below to get an overview of level of tests carried out to make THEDRAWZONE  what it is now.

Chi square test: For testing goodness of fit is used to decide whether there is any difference between the observed (experimental) value and the expected (theoretical) value.

Die-Hard Tests: Quality of a Random Number Generator is measured by a series of Statistical tests known as DieHard Tests. The battery of tests is listed as below:

  • Birthday spacings: Random points are chosen on a large interval. The spacings between the points should be asymptotically exponentially distributed. The name of this test is based on the birthday paradox.
  • RESULTS OF BIRTHDAY SPACINGS TEST FOR randomdata2.bin
    (no_bdays=1024, no_days/yr=2^24, lambda=16.00, sample size=500)
    Bits used mean chisqr p-value
    1 to 24 15.58 21.1130 0.221276
    2 to 2515.9910.43160.884543
    3 to 2615.6326.04740.073601
    4 to 2715.8923.12920.145091
    5 to 2815.7630.87500.020683
    6 to 2915.859.16980.934785
    7 to 3015.3831.32000.018255
    8 to 3115.6240.04160.001277
    9 to 3215.8022.59250.162993
    degree of freedoms is: 17

    BIRTHDAY SPACINGS TEST : Combined p-values for 9 p-values observed :

    Using KS Test : 0.038379
    Using Fisher Method : 0.000388
    Using KS Test (Kuiper) : 0.039830
    Using KS Test (A-D) : 0.001609
  • Overlapping permutations : This is the OPERM5 test. The sequences of five consecutive random numbers are analysed. There are 120 possible orderings and they should occur with statistically equal probability.
  • It looks at a sequence of one million 32-bit random integers. Each set of five consecutive integers can be in one of 120 states, for the 5! possible orderings of five numbers. Thus the 5th, 6th, 7th,...numbers each provide a state. As many thousands of state transitions are observed, cumulative counts are made of the number of occurences of each state. Then the quadratic form in the weak inverse of the 120x120 covariance matrix yields a test equivalent to the likelihood ratio test that the 120 cell counts came from the specified (asymptotically) normal distribution with the specified 120x120 covariance matrix (with rank 99). This version uses 1,000,000 integers, twice.

    OPERM5 test for file randomdata2.bin

    (For samples of 1,000,000 consecutive 5-tuples)

    Sample 1

    chisquare=103.550925 with df=99; p-value= 0.357251

    Sample 2

    chisquare=94.200095 with df=99; p-value= 0.617604


  • Ranks of matrices: Form a matrix of over {0,1} from some selected numbers form bits of random number groups. The ranks of matrices are determined and then they are counted.
  • This is the BINARY RANK TEST for 31x31 matrices. The leftmost 31 bits of 31 random integers from the test sequence are used |to form a 31x31 binary matrix over the field {0,1}. The rank is determined. That rank can be from 0 to 31, but ranks< 28 are rare, and their counts are pooled with those for rank 28.Ranks are found for 40,000 such random matrices and a chisquare test is performed on counts for ranks 31,30,28 and <=28.

    Rank test for binary matrices (31x31) from randomdata2.bin
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=28206211.40.1390.139
    r=2951985134.00.7980.936
    r=302317623103.00.2301.167
    r=311142011551.51.4982.664
    chi-square = 2.664 with df = 3; p-value = 0.446

    This is the BINARY RANK TEST for 32x32 matrices. A random 32x32 binary matrix is formed, each row a 32-bit random integer.The rank is determined. That rank can be from 0 to 32, ranks less than 29 are rare, and their counts are pooled with those for rank 29. Ranks are found for 40,000 such random matrices and a chisquare test is performed on counts for ranks 32,31,30 and <=29.

    Rank test for binary matrices (32x32) from randomdata2.bin
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=28182211.44.0934.093
    r=2951025134.00.2004.293
    r=302300123103.00.4514.744
    r=311171511551.52.3147.057
    chi-square = 7.057 with df = 3; p-value = 0.070

    This is the BINARY RANK TEST for 6x8 matrices. From each of six random 32-bit integers from the generator under test, a specified byte is chosen, and the resulting six bytes form a 6x8 binary matrix whose rank is determined. That rank can be from 0 to 6, but ranks 0,1,2,3 are rare; their counts are pooled with those for rank 4. Ranks are found for 100,000 random matrices, and a chi-square test is performed on counts for ranks 6,5 and (0,...,4) (pooled together).

    Rank test for binary matrices (6x8) from randomdata2.bin
    bits 1 to 8
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4978944.31.2031.203
    r=52169521743.90.1101.313
    r=67732777311.80.0031.316
    chi-square = 1.316 with df = 2; p-value = 0.518

    bits 2 to 9
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4925944.30.3940.394
    r=52179221743.90.1060.501
    r=67728377311.80.0110.512
    chi-square = 0.512 with df = 2; p-value = 0.774

    bits 3 to 10
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4940944.30.0200.020
    r=52177621743.90.0470.067
    r=67728477311.80.0100.077
    chi-square = 0.077 with df = 2; p-value = 0.962

    bits 4 to 11
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4950944.30.0340.034
    r=52161021743.90.8250.859
    r=67744077311.80.2131.072
    chi-square = 1.072 with df = 2; p-value = 0.585

    bits 5 to 12
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4932944.30.1600.160
    r=52161421743.90.7760.936
    r=67745477311.80.2621.198
    chi-square = 1.198 with df = 2; p-value = 0.549

    bits 6 to 13
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4948944.30.0140.014
    r=52156921743.91.4071.421
    r=67748377311.80.3791.800
    chi-square = 1.800 with df = 2; p-value = 0.406

    bits 7 to 14
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4952944.30.0630.063
    r=52154521743.91.8191.882
    r=67750377311.80.4732.355
    chi-square = 2.355 with df = 2; p-value = 0.308

    bits 8 to 15
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4943944.30.0020.002
    r=52181921743.90.2590.261
    r=67723877311.80.0700.332
    chi-square = 0.332 with df = 2; p-value = 0.847

    bits 9 to 16
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4885944.33.7243.724
    r=52172121743.90.0243.748
    r=67739477311.80.0873.835
    chi-square = 3.835 with df = 2; p-value = 0.147

    bits 10 to 17
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4897944.32.3692.369
    r=52174121743.90.0002.370
    r=67736277311.80.0332.402
    chi-square = 2.402 with df = 2; p-value = 0.301

    bits 11 to 18
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4896944.32.4702.470
    r=52152621743.92.1844.654
    r=67757877311.80.9175.571
    chi-square = 5.571 with df = 2; p-value = 0.062

    bits 12 to 19
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4887944.33.4773.477
    r=52159521743.91.0204.497
    r=67751877311.80.5505.047
    chi-square = 5.047 with df = 2; p-value = 0.080

    bits 13 to 20
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4924944.30.4360.436
    r=52176421743.90.0190.455
    r=67731277311.80.0000.455
    chi-square = 0.455 with df = 2; p-value = 0.797

    bits 14 to 21
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4968944.30.5950.595
    r=52194521743.91.8602.455
    r=67708777311.80.6543.108
    chi-square = 3.108 with df = 2; p-value = 0.211

    bits 15 to 22
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4969944.30.6460.646
    r=52179521743.90.1200.766
    r=67723677311.80.0740.840
    chi-square = 0.840 with df = 2; p-value = 0.657

    bits 16 to 23
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4932944.30.1600.160
    r=52161621743.90.7520.913
    r=67745277311.80.2541.167
    chi-square = 1.167 with df = 2; p-value = 0.558

    bits 17 to 24
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4925944.30.3940.394
    r=52184021743.90.4250.819
    r=67723577311.80.0760.895
    chi-square = 0.895 with df = 2; p-value = 0.639

    bits 18 to 25
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4932944.30.1600.160
    r=52157521743.91.3121.472
    r=67749377311.80.4251.897
    chi-square = 1.897 with df = 2; p-value = 0.387

    bits 19 to 26
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4923944.30.4800.480
    r=52179421743.90.1150.596
    r=67728377311.80.0110.607
    chi-square = 0.607 with df = 2; p-value = 0.738

    bits 20 to 27
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4945944.30.0010.001
    r=52177121743.90.0340.034
    r=67728477311.80.0100.044
    chi-square = 0.044 with df = 2; p-value = 0.978

    bits 21 to 28
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4925944.30.3940.394
    r=52187321743.90.767 1.161
    r=67720277311.80.1561.317
    chi-square = 1.317 with df = 2; p-value = 0.518

    bits 22 to 29
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4907944.31.4731.473
    r=52180921743.90.1951.668
    r=67728477311.80.0101.678
    chi-square = 1.678 with df = 2; p-value = 0.432

    bits 23 to 30
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4908944.31.3951.395
    r=52187221743.90.7552.150
    r=67722077311.80.1092.259
    chi-square = 2.259 with df = 2; p-value = 0.323

    bits 24 to 31
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4925944.30.3940.394
    r=52182621743.90.3100.704
    r=67724977311.80.0510.755
    chi-square = 0.755 with df = 2; p-value = 0.685

    bits 25 to 32
    RANKOBSERVEDEXPECTED(O-E)^2/ESUM
    r<=4965944.30.4540.454
    r=52176621743.90.0221.476
    r=67726977311.80.0241.500
    chi-square = 0.500 with df = 2; p-value = 0.779

    TEST SUMMARY, 25 tests on 100,000 random 6x8 matrices

    These should be 25 uniform [0,1] random variates:

    0.517980 0.774300 0.962248 0.585215 0.549416
    0.406481 0.308039 0.847207 0.146943 0.300857
    0.061708 0.080196 0.796531 0.211362 0.656888
    0.558004 0.639071 0.387347 0.738372 0.978098
    0.517651 0.432087 0.323180 0.685414 0.778832

    BINARY RANK - 6X8 TEST : Combined p-values for 25 p-values observed :

    Using KS Test : 0.670517
    Using Fisher Method : 0.812796
    Using KS Test (Kuiper) : 0.868848
    Using KS Test (A-D) : 0.774902
  • The OPSO, OQSO and DNA Tests:
    • OPSO means overlapping-pairs-sparse-occupancy.
    • QQSO means overlapping-quadruples-sparse-occupancy.
    • The DNA test considers an alphabet of 4 letters C,G,A,T, determined by two designated bits in the sequence of random integers being tested.

    The OPSO test considers 2-letter words from an alphabet of 1024 letters. Each letter is determined by a specified ten bits from a 32-bit integer in the sequence to be tested. OPSO generates 2^21 (overlapping) 2-letter words (from 2^21+1 "keystrokes") and counts the number of missing words---that is 2-letter words which do not appear in the entire sequence.That count should be very close to normally distributed with |mean 141,909, sigma 290. Thus (missingwrds-141909)/290 should be a standard normal variable. The OPSO test takes 32 bits at a time from the test file and uses a designated set of ten consecutive bits. It then restarts the file for the next designated 10 bits, and so on.

    OPSO test for file randomdata1.bin
    Bits usedNo. missing wordsz-scorep-value
    23 to 32141967 0.1989 0.421185
    22 to 31141488 -1.4529 0.926869
    21 to 30141940 0.1058 0.457887
    20 to 29141591 -1.0977 0.863830
    19 to 28141745 -0.5667 0.714526
    18 to 27141496 -1.4253 0.922961
    17 to 26141851 -0.2011 0.579705
    16 to 25142102 0.6644 0.253224
    15 to 24142125 0.7437 0.228532
    14 to 23142086 0.6092 0.271194
    13 to 22142307 1.3713 0.085144
    12 to 21141357 -1.9046 0.971583
    11 to 20141889 -0.0701 0.527944
    10 to 19141788 -0.4184 0.662165
    9 to 18 141758 -0.5218 0.699105
    8 to 17 142185 0.9506 0.170907
    7 to 16 142414 1.7402 0.040908
    6 to 15 142517 2.0954 0.018067
    5 to 14 141669 -0.8287 0.796370
    4 to 13 141862 -0.1632 0.564822
    3 to 12 141863 -0.1598 0.563464
    2 to 11 142143 0.8058 0.210191
    1 to 10 142024 0.3954 0.346269

    OQSO : Overlapping-Quadruples-Sparse-Occupancy

    The test OQSO is similar, except that it considers 4-letter words from an alphabet of 32 letters, each letter determined by a designated string of 5 consecutive bits from the test file, elements of which are assumed 32-bit random integers. The mean number of missing words in a sequence of 2^21 four- letter words, (2^21+3 "keystrokes"), is again 141909, with sigma = 295. The mean is based on theory; sigma comes from extensive simulation.

    OQSO test for file randomdata1.bin
    Bits usedNo. missing wordsz-scorep-value
    28 to 32 142483 1.9446 0.025909
    27 to 31 141798 -0.3774 0.647058
    26 to 30 141861 -0.1638 0.565068
    25 to 29 141917 0.0260 0.489629
    24 to 28 142182 0.9243 0.177664
    23 to 27 141641 -0.9096 0.818481
    22 to 26 142264 1.2023 0.114629
    21 to 25 141939 0.1006 0.459943
    20 to 24 141825 -0.2859 0.612509
    19 to 23 141816 -0.3164 0.624140
    18 to 22 142087 0.6023 0.273497
    17 to 21 141667 -0.8215 0.794307
    16 to 20 141431 -1.6215 0.947540
    15 to 19 141692 -0.7367 0.769351
    14 to 18 141847 -0.2113 0.583669
    13 to 17 141694 -0.7299 0.767284
    12 to 16 142017 0.3650 0.357562
    11 to 15 142171 0.8870 0.187535
    10 to 14 141668 -0.8181 0.793341
    9 to 13141521 -1.3164 0.905976
    8 to 12142064 0.5243 0.300033
    7 to 11142014 0.3548 0.361365
    6 to 10142172 0.8904 0.186624
    5 to 9142083 0.5887 0.278027
    4 to 8141920 0.0362 0.485574
    3 to 7141753 -0.5299 0.701920
    2 to 6141556 -1.1977 0.884489
    1 to 5141910 0.0023 0.499094

    The DNA test considers an alphabet of 4 letters: C,G,A,T,determined by two designated bits in the sequence of random integers being tested. It considers 10-letter words, so that as in OPSO and OQSO, there are 2^20 possible words, and the mean number of missing words from a string of 2^21 (over-lapping) 10-letter words (2^21+9 "keystrokes") is 141909. The standard deviation sigma=339 was determined as for OQSO by simulation. (Sigma for OPSO, 290, is the true value (to three places), not determined by simulation.

    DNA test for file randomdata1.bin
    Bits usedNo. missing wordsz-scorep-value
    31 to 32142048 0.4091 0.341249
    30 to 31141348 -1.6558 0.951123
    29 to 30141738 -0.5054 0.693360
    28 to 29142083 0.5123 0.304220
    27 to 28141177 -2.1603 0.984624
    26 to 27141214 -2.0511 0.979872
    25 to 26141677 -0.6853 0.753435
    24 to 25141692 -0.6411 0.739268
    23 to 24141494 -1.2252 0.889743
    22 to 23142266 1.0521 0.146371
    21 to 22142084 0.5153 0.303189
    20 to 21141670 -0.7060 0.759902
    19 to 20142354 1.3117 0.094809
    18 to 19141690 -0.6470 0.741181
    17 to 18141446 -1.3668 0.914149
    16 to 17141935 0.0757 0.469820
    15 to 16142174 0.7807 0.217478
    14 to 15141743 -0.4906 0.688163
    13 to 14142229 0.9430 0.172846
    12 to 13141838 -0.2104 0.583327
    11 to 12142193 0.8368 0.201357
    10 to 11141527 -1.1278 0.870301
    9 to 10 142368 1.3530 0.088026
    8 to 9 141585 -0.9567 0.830647
    7 to 8 142191 0.8309 0.203019
    6 to 7 142404 1.4592 0.072255
    5 to 6 142082 0.5094 0.305253
    4 to 5 141752 -0.4641 0.678712
    3 to 4 141770 -0.4110 0.659465
    2 to 3 142047 0.4061 0.342332
    1 to 2 142089 0.5300 0.298056

  • Count the 1s: 1 bits in each of either successive or chosen bytes are counted. Then the counts are converted to "letters". Now count the occurrences of five-letter "words". This is the COUNT-THE-1''s TEST on a stream of bytes.
  • Consider the file under test as a stream of bytes (fouper 32 bit integer). Each byte can contain from 0 to 8 1''s, with probabilities 1,8,28,56,70,56,28,8,1 over 256. Now let the stream of bytes provide a string of overlapping 5-letter words, each "letter" taking values A,B,C,D,E. The letters are determined by the number of 1''s in a byte: 0,1,or 2 yield A,3 yields B, 4 yields C, 5 yields D and 6,7 or 8 yield E. Thus we have a monkey at a typewriter hitting five keys with various probabilities (37,56,70,56,37 over 256). There are 5^5 possible 5-letter words, and from a string of 256,000 (over-lapping) 5-letter words, counts are made on the frequencies for each word. The quadratic form in the weak inverse of the covariance matrix of the cell counts provides a chisquare test: Q5-Q4, the difference of the naive Pearson sums of (OBS-EXP)^2/EXP on counts for 5- and 4-letter cell counts.

    Test result for the byte stream from randomdata2.bin
    (Degrees of freedom: 5^4-5^3=2500; sample size: 2560000)
    chisquarez-scorep-value
    2483.05 -0.2400.594719

    This is the COUNT-THE-1''s TEST for specific bytes.

    Consider the file under test as a stream of 32-bit integers.From each integer, a specific byte is chosen , say the left- most: bits 1 to 8. Each byte can contain from 0 to 8 1''s, with probabilitie 1,8,28,56,70,56,28,8,1 over 256. Now let the specified bytes from successive integers provide a string of (overlapping) 5-letter words, each "letter" taking values A,B,C,D,E. The letters are determined by the number of 1''s,in that byte: 0,1,or 2 ---> A, 3 ---> B, 4 ---> C, 5 ---> D, and 6,7 or 8 ---> E. Thus we have a monkey at a typewriter hitting five keys with with various probabilities: 37,56,70, 56,37 over 256. There are 5^5 possible 5-letter words, and from a string of 256,000 (overlapping) 5-letter words, counts are made on the frequencies for each word. The quadratic form in the weak inverse of the covariance matrix of the cell counts provides a chisquare test: Q5-Q4, the difference of the naive Pearson sums of (OBS-EXP)^2/EXP on counts for 5- letter and 4-letter cell counts.

    Test results for specific bytes from randomdata2.bin
    (Degrees of freedom: 5^4-5^3=2500; sample size: 256000)
    bits usedchisquarez-scorep-value
    1 to 8 2589.50 1.266 0.102809
    2 to 9 2534.88 0.493 0.310917
    3 to 10 2469.75 -0.428 0.665598
    4 to 11 2583.88 1.186 0.117758
    5 to 12 2446.52 -0.756 0.775269
    6 to 13 2495.18 -0.068 0.527153
    7 to 14 2370.69 -1.829 0.966282
    8 to 15 2477.89 -0.313 0.622729
    9 to 16 2493.88 -0.087 0.534511
    10 to 172445.27 -0.774 0.780531
    11 to 182629.66 1.834 0.033352
    12 to 192475.12 -0.352 0.637530
    13 to 202453.89 -0.652 0.742831
    14 to 212489.39 -0.150 0.559651
    15 to 222528.26 0.400 0.344707
    16 to 232561.52 0.870 0.192138
    17 to 242467.54 -0.459 0.676892
    18 to 252420.62 -1.123 0.869195
    19 to 262549.42 0.699 0.242323
    20 to 272379.35 -1.706 0.956018
    21 to 282508.35 0.118 0.452988
    22 to 292575.29 1.065 0.143477
    23 to 302526.18 0.370 0.355578
    24 to 312391.16 -1.539 0.938134
    25 to 322421.93 -1.104 0.865219

  • Parking lot test: Randomly place unit circles in a 100×100 square. A circle is successfully parked if it does not overlap an existing successfully parked one. After 12,000 tries, the number of successfully parked circles should follow a certain normal distribution. The normal distribution is a probability function that describes how the values of a variable are distributed. It is a symmetric distribution where most of the observations cluster around the central peak and the probabilities for values further away from the mean taper off equally in both directions.
  • THIS IS A PARKING LOT TEST

    In a square of side 100, randomly "park" a car---a circle of radius 1. Then try to park a 2nd, a 3rd, and so on, each time parking "by ear". That is, if an attempt to park a car causes a crash with one already parked, try again at a new random location. (To avoid path problems, consider parking helicopters rather than cars.) Each attempt leads to either a crash or a success, the latter followed by an increment to the list of cars already parked. If we plot n: the number of attempts, versus k: the number successfully parked, we get a curve that should be similar to those provided by a perfect random number generator. Theory for the behavior of such a random curve seems beyond reach, and as graphics displays are not available for this battery of tests, a simple characterization of the random experiment is used: k, the number of cars successfully parked after n=12,000 attempts. Simulation shows that k should average 3523 with sigma 21.9 and is very close to normally distributed. Thus (k-3523)/21.9 should be a standard normal variable, which, converted to a uniform variable, provides input to a KSTEST based on a sample of 10.

    CDPARK: result of 10 tests on file randomdata2.bin
    (Of 12000 tries, the average no. of successes should be 3523.0 with sigma=21.9)
    No. succesesz-scorep-value
    3517 -0.27400.607947
    3546 1.05020.146807
    3505 -0.82190.794438
    3543 0.91320.180558
    3534 0.50230.307734
    3509 -0.63930.738676
    3519 -0.18260.572463
    3549 1.18720.117571
    3527 0.18260.427537
    3547 1.09590.136563
    Square side=100, avg. no. parked=3529.60 sample std.=15.67

    PARKING LOT TEST : Combined p-values for 10 p-values observed :

    Using KS Test : 0.997557
    Using Fisher Method : 0.300859
    Using KS Test (Kuiper) : 0.976896
    Using KS Test (A-D) : 0.412500
  • Minimum distance test : Place 8000 points randomly in a 10000×10000 square, then find the minimum distance between the pairs. The square of this distance should be exponentially distributed with a certain mean. In probability theory and statistics, the exponential distribution is the probability distribution that describes the time between events in a Poisson point process, i.e., a process in which events occur continuously and independently at a constant average rate. It is a particular case of the gamma distribution.
  • THE MINIMUM DISTANCE TEST

    It does this 100 times: choose n=8000 random points in a square of side 10000. Find d, the minimum distance between the (n^2-n)/2 pairs of points. If the points are truly independent uniform, then d^2, the square of the minimum distance|should be (very close to) exponentially distributed with mean .995 . Thus 1-exp(-d^2/.995) should be uniform on [0,1) and a KSTEST on the resulting 100 values serves as a test of uniformity for random points in the square. Test numbers=0 mod 5 are printed but the KSTEST is based on the full set of 100 random choices of 8000 points in the 10000x10000 square.

    This is the MINIMUM DISTANCE test for file randomdata2.bin
    Sample no.d^2meanequiv uni
    5 0.6756705.32350.492857
    10 0.6842353.41900.497225
    15 1.6118235.89470.802079
    20 0.2914177.09010.253868
    25 0.0559141.74780.054656
    30 0.6059118.44390.456066
    35 0.1134101.60670.107730
    40 0.810189.1495 0.556990
    45 0.017179.3203 0.016990
    50 3.004171.5410 0.951159
    55 2.153665.1346 0.885179
    60 0.858859.7980 0.578149
    65 0.202455.2447 0.184091
    70 4.571151.3870 0.989888
    75 0.447348.0007 0.362096
    80 0.322245.0510 0.276632
    85 0.344042.4331 0.292290
    90 0.568940.1105 0.435449
    95 1.271238.0355 0.721304
    1000.094336.1519 0.090448

    MINIMUM DISTANCE TEST : Combined p-values for 100 p-values observed :

    Using KS Test : 0.964865
    Using Fisher Method : 0.524719
    Using KS Test (Kuiper) : 0.881248
    Using KS Test (A-D) : 0.609454
  • Random spheres test : Select 4000 points randomly in a cube of edge 1000. Center a sphere on each point, whose radius is the minimum distance to another point. The smallest sphere's volume should be exponentially distributed with a certain mean.
  • THE 3DSPHERES TEST

    Choose 4000 random points in a cube of edge 1000. At each point, center a sphere large enough to reach the next closest point. Then the volume of the smallest such sphere is (very close to) exponentially distributed with mean 120pi/3. Thus the radius cubed is exponential with mean 30. (The mean is obtained by extensive simulation). The 3DSPHERES test generates 4000 such spheres 20 times. Each min radius cubed leads to a uniform variable by means of 1-exp(-r^3/30.), then a KSTEST is done on the 20 p-values.

    The 3DSPHERES test for file randomdata2.bin
    Sample no.r^3equiv uni
    1 9.069 0.260877
    2 6.149 0.185313
    3 40.016 0.736545
    4 9.024 0.259779
    5 18.867 0.466816
    6 20.900 0.501759
    7 9.280 0.266070
    8 44.553 0.773519
    9 32.957 0.666657
    106.858 0.204355
    119.055 0.260534
    1231.569 0.650862
    132.695 0.085902
    1485.363 0.941890
    156.726 0.200841
    1677.803 0.925238
    174.736 0.146036
    181.384 0.045088
    1945.957 0.783873
    20102.0520.966685

    3D SPHERES TEST : Combined p-values for 20 p-values observed :

    Using KS Test : 0.466600
    Using Fisher Method : 0.385831
    Using KS Test (Kuiper) : 0.515314
    Using KS Test (A-D) : 0.657893
  • The squeeze test: Multiply 2³¹ by random floats on (0,1) until 1 is reached. Repeat this 100000 times. The number of floats needed to reach 1 should follow a certain distribution.
  • This is the SQUEEZE test

    Random integers are floated to get uniforms on [0,1). Starting with k=2^31=2147483647, the test finds j, the number of iterations necessary to reduce k to 1, using the reduction | k=ceiling(k*U), with U provided by floating integers from the file being tested. Such j''s are found 100,000 times, then counts for the number of times j was <=6,7,...,47,>=48 are used to provide a chi-square test for cell frequencies.

    RESULTS OF SQUEEZE TEST FOR randomdata2.bin
    Table of standardized frequency counts (obs-exp)^2/exp for j=(1,..,6), 7,...,47,(48,...)
    -0.1-0.7 0.6 -0.8 0.4 -0.1
    3.1-1.2 2.7 0.2 -1.2 0.9
    0.6-1.0 1.7 -1.2 -0.7 0.4
    0.0-0.7 -0.4 -0.1 1.0 1.2
    -1.5-0.2 -0.0 -0.5 0.2 -1.3
    0.3-1.1 -2.3 1.2 0.8 -0.8
    1.0 0.2 -0.8 -0.7 -0.6 1.0
    -0.1     
    Chi-square with 42 degrees of freedom:48.957432
    z-score=0.759118, p-value=0.213974
  • Overlapping sums test : A long sequence of random floats are generated on (0,1). Add sequences of 100 consecutive floats. The sums obtained should be normally distributed with characteristic mean and variance.
  • The OVERLAPPING SUMS test

    Integers are floated to get a sequence U(1),U(2),... of uniform [0,1) variables. Then overlapping sums, S(1) = U(1) +...+ U(100), S2=U(2)+...+U(101),... are formed.

    The S"s are virtually normal with a certain covariance matrix. A linear transformation of the S"s converts them to a sequence of independent standard normals, which are converted to uniform variables for a KSTEST.

    Results of the OSUM test for randomdata2.bin
    Test no.p-value
    1 0.267035
    2 0.270890
    3 0.056512
    4 0.965257
    5 0.072476
    6 0.430359
    7 0.145759
    8 0.474969
    9 0.056656
    100.338536

    OVERLAPPING SUM TEST : Combined p-values for 10 p-values observed :

    Using KS Test : 0.195422
    Using Fisher Method : 0.051928
    Using KS Test (Kuiper) : 0.360573
    Using KS Test (A-D) : 0.039317
  • Runs test: A long sequence of random floats on (0,1) are generated. Then Count ascending and descending runs. The counts should follow a certain distribution.
  • This is the RUNS test. It counts runs up, and runs down,in a sequence of uniform [0,1) variables, obtained by floating the 32-bit integers in the specified file. This example shows how runs are counted: .123,.357,.789,.425,.224,.416,.95 contains an up-run of length 3, a down-run of length 2 and an up-run of (at least) 2, depending on the next values. The covariance matrices for the runs-up and runs-down are well known, leading to chisquare tests for quadratic forms in the weak inverses of the covariance matrices. Runs are counted for sequences of length 10,000. This is done ten times. Then another three sets of ten.

    The RUNS test for file randomdata2.bin
    (Up and down runs in a sequence of 10000 numbers)
    Set 1 runs up; ks test for 10 p's: 0.571798 runs down; ks test for 10 p's: 0.182346
    Set 2 runs up; ks test for 10 p's: 0.203912 runs down; ks test for 10 p's: 0.464078
  • The craps test: Play 200000 games of craps, counting the wins and the number of throws per game. Each count should follow a certain distribution.
  • The CRAPS TEST. It plays 200,000 games of craps, counts the number of wins and the number of throws necessary to end each game. The number of wins should be (very close to) a normal with mean 200000p and variance 200000p(1-p), and p=244/495. Throws necessary to complete the game can vary from 1 to infinity, but counts for all>21 are lumped with 21.A chi-square test is made on the no.-of-throws cell counts. Each 32-bit integer from the test file provides the value for the throw of a die, by floating to [0,1), multiplying by 6 and taking 1 plus the integer part of the result.

    RESULTS OF CRAPS TEST against Random data

    No. of wins : Observed Expected

    98532 : 98585.858586

    z-score=-0.241, pvalue=0.59518

    All Tests : Combined p-value of 313 individual p-values :

    Using KS Test : 0.092932 - PASS (p value >= 0.05)
    Using Fisher Method : 0.127742 - PASS (p value >= 0.05)
    Using KS Test (Kuiper) : 0.143287 - PASS (p value >= 0.05)
    Using KS Test (A-D) : 0.100864 - PASS (p value >= 0.05)