Why you shouldn't use java.util.Random
import java.util.Random;
public class RandomTest{
public static void main(String[] argv){
Random lRand = new Random();
while(true){
System.out.write(lRand.nextInt());
}
}
}
The above code scores as follows on the dieharder v3.31.1 random number generator (rng) testing suite.
ian@U30Jc:[~]$ java RandomTest | dieharder -a -g 200
#=============================================================================#
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
#=============================================================================#
rng_name |rands/second| Seed |
stdin_input_raw| 3.20e+06 |1167177133|
#=============================================================================#
test_name |ntup| tsamples |psamples| p-value |Assessment
#=============================================================================#
diehard_birthdays| 0| 100| 100|0.11532745| PASSED
diehard_operm5| 0| 1000000| 100|0.06680897| PASSED
diehard_rank_32x32| 0| 40000| 100|0.35497992| PASSED
diehard_rank_6x8| 0| 100000| 100|0.10242890| PASSED
diehard_bitstream| 0| 2097152| 100|0.00000636| WEAK
diehard_opso| 0| 2097152| 100|0.00000000| FAILED
diehard_oqso| 0| 2097152| 100|0.00000000| FAILED
diehard_dna| 0| 2097152| 100|0.00000000| FAILED
diehard_count_1s_str| 0| 256000| 100|0.46289356| PASSED
diehard_count_1s_byt| 0| 256000| 100|0.40765553| PASSED
diehard_parking_lot| 0| 12000| 100|0.02279508| PASSED
diehard_2dsphere| 2| 8000| 100|0.00000000| FAILED
diehard_3dsphere| 3| 4000| 100|0.00000000| FAILED
diehard_squeeze| 0| 100000| 100|0.53113337| PASSED
diehard_sums| 0| 100| 100|0.39824114| PASSED
diehard_runs| 0| 100000| 100|0.00001316| WEAK
diehard_runs| 0| 100000| 100|0.00252610| WEAK
diehard_craps| 0| 200000| 100|0.00107496| WEAK
diehard_craps| 0| 200000| 100|0.00000018| FAILED
marsaglia_tsang_gcd| 0| 10000000| 100|0.00000000| FAILED
marsaglia_tsang_gcd| 0| 10000000| 100|0.00000000| FAILED
sts_monobit| 1| 100000| 100|0.20733182| PASSED
sts_runs| 2| 100000| 100|0.77988080| PASSED
sts_serial| 1| 100000| 100|0.99446972| PASSED
sts_serial| 2| 100000| 100|0.96100785| PASSED
sts_serial| 3| 100000| 100|0.89285722| PASSED
sts_serial| 3| 100000| 100|0.05393848| PASSED
sts_serial| 4| 100000| 100|0.04895295| PASSED
sts_serial| 4| 100000| 100|0.26833358| PASSED
sts_serial| 5| 100000| 100|0.46433366| PASSED
sts_serial| 5| 100000| 100|0.91882165| PASSED
sts_serial| 6| 100000| 100|0.01945150| PASSED
sts_serial| 6| 100000| 100|0.03725972| PASSED
sts_serial| 7| 100000| 100|0.21674629| PASSED
sts_serial| 7| 100000| 100|0.37352942| PASSED
sts_serial| 8| 100000| 100|0.72413212| PASSED
sts_serial| 8| 100000| 100|0.40851761| PASSED
sts_serial| 9| 100000| 100|0.45110158| PASSED
sts_serial| 9| 100000| 100|0.16321474| PASSED
sts_serial| 10| 100000| 100|0.00931896| PASSED
sts_serial| 10| 100000| 100|0.00060162| WEAK
sts_serial| 11| 100000| 100|0.00001198| WEAK
sts_serial| 11| 100000| 100|0.05470931| PASSED
sts_serial| 12| 100000| 100|0.00000002| FAILED
sts_serial| 12| 100000| 100|0.00019593| WEAK
sts_serial| 13| 100000| 100|0.00000000| FAILED
sts_serial| 13| 100000| 100|0.00000236| WEAK
sts_serial| 14| 100000| 100|0.00000000| FAILED
sts_serial| 14| 100000| 100|0.00000985| WEAK
sts_serial| 15| 100000| 100|0.00927377| PASSED
sts_serial| 15| 100000| 100|0.00000000| FAILED
sts_serial| 16| 100000| 100|0.00000003| FAILED
sts_serial| 16| 100000| 100|0.00005695| WEAK
rgb_bitdist| 1| 100000| 100|0.42363532| PASSED
rgb_bitdist| 2| 100000| 100|0.16556626| PASSED
rgb_bitdist| 3| 100000| 100|0.00554647| PASSED
rgb_bitdist| 4| 100000| 100|0.38799670| PASSED
rgb_bitdist| 5| 100000| 100|0.31175145| PASSED
rgb_bitdist| 6| 100000| 100|0.24307881| PASSED
rgb_bitdist| 7| 100000| 100|0.67005996| PASSED
rgb_bitdist| 8| 100000| 100|0.21794428| PASSED
rgb_bitdist| 9| 100000| 100|0.95224688| PASSED
rgb_bitdist| 10| 100000| 100|0.84906916| PASSED
rgb_bitdist| 11| 100000| 100|0.30530792| PASSED
rgb_bitdist| 12| 100000| 100|0.00923950| PASSED
rgb_minimum_distance| 2| 10000| 1000|0.00000000| FAILED
rgb_minimum_distance| 3| 10000| 1000|0.00000000| FAILED
rgb_minimum_distance| 4| 10000| 1000|0.00000000| FAILED
rgb_minimum_distance| 5| 10000| 1000|0.00000000| FAILED
rgb_permutations| 2| 100000| 100|0.06245407| PASSED
rgb_permutations| 3| 100000| 100|0.06711627| PASSED
rgb_permutations| 4| 100000| 100|0.00000000| FAILED
rgb_permutations| 5| 100000| 100|0.00000000| FAILED
rgb_lagged_sum| 0| 1000000| 100|0.00466648| WEAK
rgb_lagged_sum| 1| 1000000| 100|0.00450645| WEAK
rgb_lagged_sum| 2| 1000000| 100|0.00085051| WEAK
rgb_lagged_sum| 3| 1000000| 100|0.01191740| PASSED
rgb_lagged_sum| 4| 1000000| 100|0.54821045| PASSED
rgb_lagged_sum| 5| 1000000| 100|0.19477664| PASSED
rgb_lagged_sum| 6| 1000000| 100|0.14523425| PASSED
rgb_lagged_sum| 7| 1000000| 100|0.00000000| FAILED
rgb_lagged_sum| 8| 1000000| 100|0.11426989| PASSED
rgb_lagged_sum| 9| 1000000| 100|0.06428463| PASSED
rgb_lagged_sum| 10| 1000000| 100|0.10930098| PASSED
rgb_lagged_sum| 11| 1000000| 100|0.00000000| FAILED
rgb_lagged_sum| 12| 1000000| 100|0.85871773| PASSED
rgb_lagged_sum| 13| 1000000| 100|0.00000304| WEAK
rgb_lagged_sum| 14| 1000000| 100|0.17530965| PASSED
rgb_lagged_sum| 15| 1000000| 100|0.00000000| FAILED
rgb_lagged_sum| 16| 1000000| 100|0.12201944| PASSED
rgb_lagged_sum| 17| 1000000| 100|0.00050415| WEAK
rgb_lagged_sum| 18| 1000000| 100|0.85667857| PASSED
rgb_lagged_sum| 19| 1000000| 100|0.01045209| PASSED
rgb_lagged_sum| 20| 1000000| 100|0.00026969| WEAK
rgb_lagged_sum| 21| 1000000| 100|0.40791518| PASSED
rgb_lagged_sum| 22| 1000000| 100|0.37347909| PASSED
rgb_lagged_sum| 23| 1000000| 100|0.00000058| FAILED
rgb_lagged_sum| 24| 1000000| 100|0.61873430| PASSED
rgb_lagged_sum| 25| 1000000| 100|0.05906252| PASSED
rgb_lagged_sum| 26| 1000000| 100|0.36867202| PASSED
rgb_lagged_sum| 27| 1000000| 100|0.04691550| PASSED
rgb_lagged_sum| 28| 1000000| 100|0.22757449| PASSED
rgb_lagged_sum| 29| 1000000| 100|0.00507144| PASSED
rgb_lagged_sum| 30| 1000000| 100|0.17803753| PASSED
rgb_lagged_sum| 31| 1000000| 100|0.00000000| FAILED
rgb_lagged_sum| 32| 1000000| 100|0.99890244| WEAK
rgb_kstest_test| 0| 10000| 1000|0.93061838| PASSED
dab_bytedistrib| 0| 51200000| 1|1.00000000| FAILED
dab_dct| 256| 50000| 1|0.18586199| PASSED
dab_filltree| 32| 15000000| 1|0.00000000| FAILED
dab_filltree| 32| 15000000| 1|0.00000000| FAILED
dab_filltree2| 0| 5000000| 1|0.00000000| FAILED
dab_filltree2| 1| 5000000| 1|0.00000000| FAILED
dab_monobit2| 12| 65000000| 1|1.00000000| FAILED