It's not an aberration at all!! The rand() function is indeed totally random, as you were able to notice with the "Normal" part, the one which did not include reciprocals. Here's your code:
If X=21 : Then
What is actually happening is that when you get a random number (say the calculator gave you .7980701009), you divide that number by one (which gives you 1.253022759), then add a one (that is 2.253022759). When you do the same for the Y-axis, you get that coordinate for either the X-axis or the Y-axis. You see, the calculator choose a random number for each digit of the rand() function, which means that there's a 1 out of 10 chance for you to get a .0xxxxxxxx and even small chance for you to get a .00xxxxxx. So because you are dividing 1 by the number, you are more likely to get a number closer to zero. Now, it's already difficult to get a small number in the X-axis but to get another small number for the Y-axis is even tougher.
So you see, it's not the calculator's fault, its what all random functions (rand(), randInt(), randM(), etc...) do.