Here is a state of the art random number generator. Practically industrial strength. The output comes out in the form of a uniform random variable though, so if you need other probability distributions, you have to obtain them from the uniform variable in the usual way (check out simulation textbooks and resources if you need the 'recipes'). It is also not hard converting uniform r.v's into integers. just do a ceiling on the r.v.
Also, it only outputs a single number at a time, but I'm sure you can put it into an array yourself.
Check out the RngStream link from here....
http://www.iro.umontreal.ca/~simardr/
Here are the links to the C and C++ files themselves.
http://www.iro.umontreal.ca/~lecuyer/myftp/streams00/