I have a method which I am using to generate random strings by creating random integers and casting them to char
public static string GenerateRandomString(int minLength, int maxLength)
        {
            var length = GenerateRandomNumber(minLength, maxLength);
            var builder = new StringBuilder(length);
            var random = new Random((int)DateTime.Now.Ticks);
            for (var i = 0; i < length; i++)
            {
                builder.Append((char) random.Next(255));
            }
            return builder.ToString();
        }
The problem is that when I call this method frequently, it is creating the same sequence of values, as the docs already says:
The random number generation starts from a seed value. If the same seed is used repeatedly, the same series of numbers is generated. One way to produce different sequences is to make the seed value time-dependent, thereby producing a different series with each new instance of Random.
As you can see I am making the seed time dependent and also creating a new instance of Random on each call to the method. Even though, my Test is still failing.
[TestMethod]
        public void GenerateRandomStringTest()
        {
            for (var i = 0; i < 100; i++)
            {
                var string1 = Utilitaries.GenerateRandomString(10, 100);
                var string2 = Utilitaries.GenerateRandomString(10, 20);
                if (string1.Contains(string2))
                    throw new InternalTestFailureException("");
            }
        }
How could I make sure that independently of the frequency on which I call the method, the sequence will "always" be different?
 
     
     
     
    