No tiene nada de malo, es lo suficientemente bueno para generar contraseñas simples. Un ejemplo sencillo (source):
Random RandomClass = new Random();
int RandomNumber = RandomClass.Next(); // Random number between 1 and 2147483647
double RandomNumber = RandomClass.Next(1,10); // Random number between 1 and 10
double RandomDouble = RandomClass.NextDouble(); // Random double between 0.0 and 1.0
El artículo How To: Generate a Random Password (C#/VB.NET) tiene un ejemplo muy amplia de generar buena, fácil de leer contraseñas con la complejidad especificada. Puede ser excesivo para usted, pero podría proporcionar una buena fuente para copiar ideas.
Si necesita algo más para la criptografía, hay otro espacio de nombres para que:
System.Security.Cryptography
En concreto, puede utilizar esto:
System.Security.Cryptography.RNGCryptoServiceProvider.GetBytes(yourByte)
Un ejemplo es Using Crypto for your Random Numbers in VB.NET y otro es Crypto Random Numbers.
Si usted está pensando en rodar su propia, el sitio Developer Guidance Share tiene alguna información para hablar de ella.
Un poco de tema, pero esta es una buena historia de lo equivocado que puede pasar cuando no se tienen buenos generadores aleatorios .. http://www.cigital.com/papers/download/developer_gambling.php – StefanE