Something like a geometric progression only lacks cycles because it is theoretically infinite. The reason why a PRNG will repeat is because it's contained in a finite state machine, and it will eventually (in isolation) reach a previous state and start over. For a digital (binary) machine, this is an imminent property -- it is a finite state machine by design, unless it's working poorly or takes aid from non-digital components or random memory state at startup. The state can be made arbitrarily big today, however.
And this is where the practical aspect comes in. It's possible to design a PRNG which is so good that it will never practically repeat within the age of the universe, and will pass any randomness test you can come up with. Obviously, you still need to seed it with "real" randomness to get a properly random stream of numbers, but even a zero initial state of a good PRNG will pass randomness tests done blind, ie without expecting that articular PRNG: