Read Me file for RandInt5.exe, v. 1.05 (1998-11-27).

Win32:  Windows 95 or Windows NT 4.0.

This program generates lists of nonnegative, 32-bit
random numbers.  It outputs these as decimal and hex 
integers.  Each random byte corresponding to a
printable ASCII character also is output in a 
string below the numbers, for possible use in 
password composition.

Install it by unZIPing the release file to any 
convenient directory.

You should see:
   ReadMe.txt    . . .     5126 bytes    
   RandInt5.exe  . . .  159,744 bytes
   
Drop the .exe into any folder to create an icon.   

-----------------------------------------------------
Program Details:

Press [Generate] for a list of 16 new random numbers.

Press [Copy] to copy the latest list to the Windows
clipboard.

Each list is presented in a new nonmodal messagebox, 
so the [Generate] button may be pressed multiple times
for simultaneous display of any number of random
number lists.  The most recent list may be copied to
the Windows clipboard.

Internal:

This is a C++ program.   Source is not provided.
The program source was about 500 lines, residing
mainly in a header file for declarations,
and in one implementation file.  Side files for
Windows resources also were used.

The default seed of 0 is recombined with the current
millisecond-resolved system real time clock value
to reseed each number listed, so the results are 
truly random, not pseudorandom.  An initial user 
seed optionally may be entered, but this rarely will 
be found necessary.

Each 32-bit integer is formed by concatenating two 
raw, 16-bit system rand() unsigned ints, which always
have a MS bit of 0, and then ORing two new random 
bits at positions 31 and 15 to make a fully random 
integer.

The string of printable characters is composed by 
testing in order each byte in the random number
list against the ANSI 'C' isgraph() filter.

Statistics:

The sampling distribution of the random numbers 
may be platform specific.  

As a coarse check, 50 lists were generated during a 
RandInt run at a rate of about one every minute, 
and the decimal numbers, only, were pasted into a 
Statistica spreadsheet.  No user seed was entered.
Note that RandInt does not display decimal leading
zeroes, so these were not included.

The software was the standard release compile in the 
Borland 5.01 IDE; the run was in Windows NT 4.0 on 
a  Dell Pentium Pro PC with Phoenix ROM BIOS PLUS,
version 1.10.

With list number in column and 16 values in row, no 
obviously aberrant row or column mean (or sample
sd) was found.   Inspection of 50 list x 50 list 
scatterplots showed a few highly correlated 
lists, but no duplicates.   List and number-order
means were quite normally distributed, consistent with
the central limit theorem.

Analysis of variance yielded between-list F of .54
with 49 df (no significant difference in list means).
The average intercorrelation between lists was -.006,
suggesting no gross linear trend within the lists.

Considering the individual random digits (in decimal),
only the lower 9 digits were kept, because the most 
significant decimal digit cannot exceed 4 for an 
unsigned 32-bit integer.   The result was 7096 
decimal numerals:

+---------+--------+----------+
| Numeral | Binary | Observed |
|         |        |  Count   |
+---------+--------+----------+
|    0    |  000   |   732    |
+---------+--------+----------+
|    1    |  001   |   896    |
+---------+--------+----------+
|    2    |  010   |   963    |
+---------+--------+----------+
|    3    |  011   |   927    |
+---------+--------+----------+
|    4    |  100   |   810    |
+---------+--------+----------+
|    5    |  101   |   705    |
+---------+--------+----------+
|    6    |  110   |   718    |
+---------+--------+----------+
|    7    |  111   |   676    |
+---------+--------+----------+
|    8    | 1000   |   670    |
+---------+--------+----------+
|    9    | 1001   |   678    |
+---------+--------+----------+

These observed vs the expected 709.6 counts 
were significant in a chi-square test 
(20.7; df=9; p<.02).    However, the sample
sd being only about 40, and all counts being 
within 60 of the mean (60 is less than 
10% per digit), suggest that program
or system artifacts exist but are a minor 
component of the randomization.

In conclusion, the program seems to produce
reasonably independent lists of fairly uniformly
distributed random integers.

Users should be certain to understand that 
this program is supplied STRICTLY AS-IS and with
NO WARRANTY of fitness for any purpose.

The statistics above are meant to be useful, but
NO WARRANTY is expressed or implied.

-----------------------------------------------------
This freeware program is Copyright (c) 1998 by John 
Michael Williams and may be copied or redistributed 
freely for any purpose, provided the executable and 
this ReadMe file always are copied or distributed 
together.

Creator:  John Michael Williams (jwill@pacbell.net).

