  NIST SP800-22 (2010) proposes the state of art testing suite for (pseudo)
random generators to detect deviations of a binary sequence from randomness. On
the one hand, as a counter example to NIST SP800-22 test suite, it is easy to
construct functions that are considered as GOOD pseudorandom generators by NIST
SP800-22 test suite though the output of these functions are easily
distinguishable from the uniform distribution. Thus these functions are not
pseudorandom generators by definition. On the other hand, NIST SP800-22 does
not cover some of the important laws for randomness. Two fundamental limit
theorems about random binary strings are the central limit theorem and the law
of the iterated logarithm (LIL). Several frequency related tests in NIST
SP800-22 cover the central limit theorem while no NIST SP800-22 test covers
LIL.
  This paper proposes techniques to address the above challenges that NIST
SP800-22 testing suite faces. Firstly, we propose statistical distance based
testing techniques for (pseudo) random generators to reduce the above mentioned
Type II errors in NIST SP800-22 test suite. Secondly, we propose LIL based
statistical testing techniques, calculate the probabilities, and carry out
experimental tests on widely used pseudorandom generators by generating around
30TB of pseudorandom sequences. The experimental results show that for a sample
size of 1000 sequences (2TB), the statistical distance between the generated
sequences and the uniform distribution is around 0.07 (with $0$ for
statistically indistinguishable and $1$ for completely distinguishable) and the
root-mean-square deviation is around 0.005.
