I wasn't specifically talking about 2FA here, but yes, 2FA codes are pseudorandom. That's by design, so that both you and the service you are authenticating can know the same secret code at the same time.
Oversimplifying a bit, when your device first syncs up with the service you want to use 2FA for, they share a secret key. After that, the 2FA codes you see changing every so often are just a SHA-1 hash of that key and the current time. The codes are entirely predictable, but only if you know the original secret key. It's described in detail in IETF RFC 6238.
Generating that secret key for a PRNG, on the other hand, would be a great use for Bierhorst's RNG.