Abnormal Sharp IR sensor readings?

I hooked up a GP2D12 Sharp distance sensor to my Arduino. It definately works cause I'm getting readings somehow related to the distance of anything I put in fromt of it.

However the readings I'm getting are not quite what I expected. So far I've gotten readings from 0 to 543. According to the info I have found on calibrating I'm not supposed to be getting readings much less than 100? See this for instance:

I also found the following function for calculating the range. According to this any value below 3 is INVALID? I'm getting 0 - 2 quite often whenever nothing is in front of it.

www.arduino.cc/playground/Main/ReadGp2d12Range

Here are some raw readings and their corresponsing "range" using the mentioned function:

Raw: 23   Range: 335.35
Raw: 11   Range: 844.38
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 9   Range: 1127.17
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 0   Range: -1.00
Raw: 31   Range: 238.39
Raw: 9   Range: 1127.17
Raw: 13   Range: 674.70
Raw: 3   Range: 0.00
Raw: 4   Range: 6783.00
Raw: 7   Range: 1692.75
Raw: 7   Range: 1692.75
Raw: 7   Range: 1692.75
Raw: 0   Range: -1.00
Raw: 23   Range: 335.35
Raw: 3   Range: 0.00
Raw: 6   Range: 2258.33
Raw: 4   Range: 6783.00
Raw: 10   Range: 965.57
Raw: 3   Range: 0.00
Raw: 5   Range: 3389.50
Raw: 3   Range: 0.00
Raw: 0   Range: -1.00
Raw: 15   Range: 561.58
Raw: 10   Range: 965.57
Raw: 11   Range: 844.38
Raw: 6   Range: 2258.33
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 5   Range: 3389.50
Raw: 0   Range: -1.00
Raw: 263   Range: 22.10
Raw: 310   Range: 18.11
Raw: 330   Range: 16.76
Raw: 370   Range: 14.49
Raw: 428   Range: 11.97
Raw: 499   Range: 9.68
Raw: 482   Range: 10.17
Raw: 441   Range: 11.50
Raw: 405   Range: 12.88
Raw: 363   Range: 14.85
Raw: 352   Range: 15.45
Raw: 308   Range: 18.25
Raw: 359   Range: 15.06
Raw: 387   Range: 13.67
Raw: 494   Range: 9.82
Raw: 498   Range: 9.71
Raw: 471   Range: 10.50
Raw: 494   Range: 9.82
Raw: 490   Range: 9.94
Raw: 475   Range: 10.38
Raw: 431   Range: 11.86
Raw: 450   Range: 11.18
Raw: 487   Range: 10.02
Raw: 502   Range: 9.60
Raw: 476   Range: 10.35
Raw: 485   Range: 10.08
Raw: 459   Range: 10.88
Raw: 464   Range: 10.72
Raw: 486   Range: 10.05
Raw: 396   Range: 13.27
Raw: 342   Range: 16.02
Raw: 368   Range: 14.59
Raw: 410   Range: 12.68
Raw: 407   Range: 12.80
Raw: 449   Range: 11.22
Raw: 391   Range: 13.49
Raw: 459   Range: 10.88
Raw: 485   Range: 10.08
Raw: 382   Range: 13.91
Raw: 387   Range: 13.67
Raw: 383   Range: 13.86
Raw: 380   Range: 14.00
Raw: 371   Range: 14.44
Raw: 393   Range: 13.40
Raw: 384   Range: 13.81
Raw: 432   Range: 11.82
Raw: 463   Range: 10.75
Raw: 512   Range: 9.33
Raw: 509   Range: 9.41
Raw: 492   Range: 9.88
Raw: 501   Range: 9.63
Raw: 462   Range: 10.79
Raw: 446   Range: 11.32
Raw: 496   Range: 9.77
Raw: 507   Range: 9.47
Raw: 477   Range: 10.32
Raw: 506   Range: 9.49
Raw: 535   Range: 8.76
Raw: 521   Range: 9.10
Raw: 521   Range: 9.10
Raw: 455   Range: 11.02
Raw: 380   Range: 14.00
Raw: 335   Range: 16.44
Raw: 240   Range: 24.64
Raw: 2   Range: -1.00
Raw: 3   Range: 0.00
Raw: 0   Range: -1.00
Raw: 23   Range: 335.35
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 0   Range: -1.00
Raw: 7   Range: 1692.75
Raw: 5   Range: 3389.50
Raw: 4   Range: 6783.00
Raw: 3   Range: 0.00
Raw: 3   Range: 0.00
Raw: 8   Range: 1353.40
Raw: 3   Range: 0.00
Raw: 4   Range: 6783.00
Raw: 2   Range: -1.00
Raw: 25   Range: 304.50
Raw: 4   Range: 6783.00
Raw: 3   Range: 0.00

Does anyone have a clue as to what is going on?