非常にシンプルでよく知られているRNGアルゴリズム、「Multiply-with-Carry」があります。これは、私が知っているすべてのプラットフォームに簡単に実装できます。それはあなたが要求している特性を持っています。ランダム性が適切かどうかを判断するのはあなた次第です。
ウィキペディアから:
単純な疑似乱数ジェネレーターの例は、GeorgeMarsagliaによって発明されたMultiply-with-carryメソッドです。これは計算が高速で、(暗号的に強力ではありませんが)優れたランダム性を備えています。
そして、これがC#での非常に単純な実装であり、他の言語に問題なく適応できます。
static int m_w = 1337; // Choose initialization value, must not be zero
static int m_z = 123123; // Choose initialization value, must not be zero
int GetRandom()
{
m_z = 36969 * (m_z & 65535) + (m_z >> 16);
m_w = 18000 * (m_w & 65535) + (m_w >> 16);
return (m_z << 16) + m_w; /* 32-bit result */
}
m_wとm_zの初期値はシードです。