geração aleatória de strings - dois gerados um após o outro dão os mesmos resultados

Eu tenho um simples pedaço de código:

public string GenerateRandomString()
        {
            string randomString = string.Empty;
            Random r = new Random();
            for (int i = 0; i < length; i++)
                randomString += chars[r.Next(chars.Length)];

            return randomString;
        }

Se eu chamar essa função para gerar duas strings, uma após a outra, elas serão idênticas ... mas se eu depurar através das duas linhas onde as strings são geradas - os resultados serão diferentes. alguém sabe por que isso está acontecendo?

questionAnswers(5)

yourAnswerToTheQuestion