After programmatically creating a token, it does not get overridden I have the function below in a module. After it runs once, the token never changes again. I have to disable the module, and re-enable it, to get the token to run. Do you have any idea why this happens?

function my_token_values($type, $object = NULL, $options = array()) {
    global $user;

   $rand = rand();
   if ($type == 'global') {
        $tokens['random-number-replace'] = $rand;
   }
   return $tokens;
}
Where are you using the token? Drupal may be caching information at a higher level (like the filtered output of a node, for example) and only calling the token generation code once.