private static string ReplaceDisallowedCharacters(string input, string allowedCharacters = "abcdefghijklmnopqrstuvwxyz") { if (string.IsNullOrEmpty(allowedCharacters) || string.IsNullOrEmpty(input)) { return(input); } var rnd = new Random(); var result = input.ToCharArray(); var allowedCharSet = new System.Collections.Generic.HashSet <char>(allowedCharacters); for (var i = 0; i < result.Length; i++) { if (!allowedCharSet.Contains(result[i])) { result[i] = allowedCharSet.ElementAt(rnd.Next(0, allowedCharSet.Count - 1)); } } return(new string(result)); }