using System.Security.Cryptography;
RNGCryptoServiceProvider rng = New RNGCryptoServiceProvider();
byte[] ra = new Byte[500];
rng.GetBytes(ra);
// ra now has 500 strong random bytes
// Take first 4 bytes and convert to a 32-bit integer
int randValue = BitConverter.ToInt32(ra, 0);