I think my problem arises from the fact that the time period between successive generations is so short that seeding is incapable of producing randomness.
Are you sure? You should only be seeding rand once; at the start of your program. If you repeatedly seed rand then the numbers you get will not be random at all.