Password_Options is not must
private string CreatePassword(int length)
{
using (RNGCryptoServiceProvider rProvider = new RNGCryptoServiceProvider())
{
// ASCII printable characters
char[] chars = Enumerable.Range(33, 94).ToArray().Select(a => (char)a).ToArray();
string source = new string(chars);
byte[] random = new byte[source.Length];
rProvider.GetBytes(random);
var pwd = (from k in
from c in source select new { c = c, o = random[source.IndexOf(c)] }
orderby k.o
select k.c).Take(length).ToArray();
return new string(pwd);
}
}