Random with your hands tied Task
Develop some code to generate a psuedo-random number between X and Y (taken as input). Explain why or how it works.
Conditions

Do not use any random generating seeds, pre-written randoms, or external source to generate the random number.
Make something as close to random as you can get. No hard coding of values.

Whoever gets the most upvotes for a new, innovative, out of the box, idea, wins.
C

not sure if the volatile keyword is needed (or what other OS dependencies are assumed here)

simply takes the address of a variable, and maps it to [min, max]:

int rand(int min, int max)
{
  volatile int order = max - min + 1;
  return min + (int)&amp;order % order;
}