It's a simple, homebrew pseudo-random number generator. I'm not sure where you can find the theory of pseudorandom number generators,
nummerical recipes in c ... the pdf's are online ...
but basically the val = val * 435898247 + 382842987 step mixes up the set of odd 32-bit integers in a very complicated way.
as described in nr as "an even quicker generator" ...
cheers ... tim