If nothing about the system or its environment changes, then the result of a test should not change. If a test is passing on my system today but failing tomorrow even though I haven't changed the system, then that test is unreliable. In fact, it is invalid as a test because its "failures" are not really failures – they're an "unknown" result disguised as knowledge. We say that such tests are "flaky" or "non-deterministic."
Some aspects of a system are genuinely non-deterministic. For example, you might generate a random string based on the time of day, and then show that string on a web page. In order to test this reliably, you would need two tests:
A test that uses the random-string generation code over and over to make sure that it properly generates random strings.
A test for the web page that uses a fake random-string generator that always returns the same string, so that the web page test is deterministic.
Of course, you would only need the fake in that second test if verifying...