I've created a seeded Pseudo Random Number Generator based on the Mersenne Twister PRNG algorithm. It has a slightly greater degree of randomness when compared to the MD5 based method (integer of first 8 digits of MD5 of previous key + seed) but takes around 1/3rd of the time under Mono as it does not use strings or any LL function-calls.
In addition, it provides handy methods for getting random floats and keys as well, using the same number generator (though in the case of keys MD5 will be several times faster, but not as quite as random).
The code can be found on the wiki at:
https://wiki.secondlife.com/wiki/Pseudo_Random_Number_Generator