It's a matter of periods in the sequence of numbers generated by the PRNG. If the output of the PRNG has a single period that is of length 2^n$2^n$, then you can avoid repetition by appropriately recording the section that you have already used. Thus if you start from 0$0$ and get the first time to g1$g_1$, the next time you start from g1$g_1$ and get to g2$g_2$, etc. etc. until you have used up the entire period (keep a count of the numbers generated in order to detect that). PRNGs that generate numbers in [0, 2^n-1]$[0, 2^{n-1}]$ may not necessarily have the maximal period length of 2^n$2^n$. One special kind of PRNGs that have the maximal period length are based on the so-called permutation polynomials mod 2^n$2^n$. I used it in one of my software (s13.zetaboards.com/Crypto/topic/7355166/1/s13.zetaboards.com/Crypto/topic/7355166/1/), where a literature reference to permutation polynomials as well as a practical implementation of PRNGs based on them are given.