This version of randNorm() uses a different algorithm than the TI-83 one. From what I've figured out, it takes 2 random numbers to generate a random normal, and sometimes the result is discarded (so, starting with randseed 0, it takes 4, 2, 2, and 6 random numbers total to generate each successive random normal). After doing some reading on rejection methods, I still have no clue how to figure out the exact method used.

Edit: 1000 samples of randNorm() made 2508 calls to rand(), which gives a vague idea of the rejection rate.