From my understanding, the Random
class generates random values based on a "Psuedo-random algorithm", so in fact they are not random what-so-ever. they are based on a concrete implementation of a mathmatical algorithm, so the results are predictable.
So if I was trying to break this algorithm, for a security breach, not that I would, I need to know certain information: I know what the algorithm is, it's publically accessible through the .Net framework, what is the input values (the seed)?
Again you can't just magic up these input values, they must be based on something, so what?
In your example your trying, as I understand it, to generate all possible seed values. This like you said takes a long time!
But why would I do this? the most intelligent approach is to try and guess what your using to generate your input values? i.e. are you using time? When do the passwords get reset? When was this password generated? What subset of values does this give me? How big a number are you using?
If you can test 6 million seeds in a day, how many values does applying some logic narrow the set of possible values down to? If it's < 6 million I could break your password in 24 hours.
That said if you can make your subset of seeds large enough and unpredicatble enough then this is hard. So the question, like many things in security comes down do, how secure does this need to be? Nothing's 100%!