So within the context of RSpec testing itself, invoking the real `srand` is still bad, in my opinion. Whatever it is seeded with will serve as the seed from that point forward (i.e. `srand 123` will result in the exact same results for every randomization after that, which means you might as well hard code the values that come from any randomization after that - randomizing ordering mitigates this slightly, but not enough).

I get why you aren't crazy about this code and maybe there is another solution. Here are the two things that I am concerned about happening unintentionally:

1. Calling `srand` in a spec (or as a side-effect) with a hard-coded seed results in the same 'randomization' for everything after that (on every run - i.e. not even pseudo-random).

2. Calling `srand` in a spec (or as a side-effect) with a 'random' value results in failures that are not reproduceable. This also ties back into the first point if the 'random' value is from a very small set (i.e. rand(9) or something).

Here's another option that captures any way it could be called:
If we wanted to enforce stubbing, we could raise an error instead.

```ruby
#spec/support/ext/kernel.rb (or some such thing)
module Kernel
  def srand(seed = 0)
    seed
  end
end
```