title: Is java.util.Random really that random? How can I generate 52! (factorial) possible sequences?
body: <p>I've been using <code>Random (java.util.Random)</code> to shuffle a deck of 52 cards. There are 52! (8.0658175e+67) possibilities. Yet, I've found out that the seed for <code>java.util.Random</code> is a <code>long</code>, which is much smaller at 2^64 (1.8446744e+19). </p>
  
  <p>From here, I'm suspicious whether <code>java.util.Random</code> <em>is really that random</em>; is it actually capable of generating all 52! possibilities?</p>
  
  <p>If not, how can I reliably generate a better random sequence that can produce all 52! possibilities?</p>