This is an extension of an old Redmine issue that affected Puppet proper (#15791, to be specific), which affected fqdn_rand(). Specifically, the issue is that fqdn_rotate() changes the global seed and then doesn't reset it. This can be fixed by changing fqdn_rand() to either reset the global seed or use fqdn_rand()/Puppet::Util.deterministic_rand() for generating its random numbers. Puppet::Util.deterministic_rand() was added in Puppet 3.2.0 and either doesn't modify the global seed or (if that isn't possible) resets it after use, and fqdn_rand() was modified to use it for its random numbers.
To demonstrate this issue, you can add the following line to the end of fqdn_rotate.rb before it returns:
and execute fqdn_rotate() twice in a single run:
Ideally, the two warnings would have different values in them.