No, this would be extremely confusing and not the nature of a "random number". If you want a function which behaves completely different than what rand is expected to, create your own function for this reason.
function S = StaticRand(varargin)
siz = cell2mat(varargin);
n = prod(siz);
nPool = numel(Pool);
if n > nPool
Pool = cat(1, Pool, rand(n - nPool, 1));
S = reshape(Pool(1:n), siz);
Now this function replies the same random numbers for each call.
I cannot imagine, that such a function is really useful. It seems to be much smarter to call rand directly and to share the output by using arguments for the called functions. Sharing random values by storing them persistently in another function, looks like obfuscating.