RNGCryptoServiceProvider は Random() よりも「安全」(高品質の乱数を生成する)であるため、使用して感じました。パフォーマンスは問題ではありません。しかし、最後の桁を読み取る代わりに、その前に 0 または 1 をいつ追加するかを何らかの方法で決定します。より良い (より正確な) 方法はありますか?
byte[] data = new byte[4];
rng.GetBytes(data);
int value = BitConverter.ToInt32(data, 0);
Console.WriteLine(value);