rand is generally the C standard library rand function which varys from C to C implementation. rand is a pseudo-random number generator and it does repeat its cycle after a period that is a function of the specific implementation.Even minimal implementations should use at least 16 bits with a cycle length of 64K.
Much better generators are available and there is a vast quantity of material available describing the virtues and failings of different generators. For your purpose how many numbers do you require? Do they need to be random (derived from a "random seed"). Do they need to be independent or can a random starting point be used in a very long sequence? How many do you need to generate per second?
Random_number_generator is a starting point for exploring the world of random number generators. You could look at Math::Random for a better pseudo random number generator.
DWIM is Perl's answer to Gödel