My understanding in that a QR Code contains the data that is being read, and it does not require an internet connection to interpret the code. If this is the case, why do I get a different QR Codes every time I recreate a new QR with the same data?
I see definite differences if I use two different generators to create the same code. For instance, creating a URL link to http://www.yahoo.com creates two different QRs on these sites:
Mind that QR codes may use 4 different levels of error correction, labeled L, M, Q and H, respectively. Also, there is a process called masking, with the intention to increase the robustness of the reading process by distributing the black and white pixels over the image. There are also a number of masking patterns available, which can produce a valid QR code, but with different results. Read the specification for more info on those.
That being said, given a generator with the same settings, the output should always be the same, which is what your original question was about. Now, comparing two different generators might result in observing two different images due to the effects mentioned above.
Spec link, randomly picked off of Google (I'm mentioning this because ISO is selling the QR specification as a standard document):