There's a lot of `Random` code identifiers floating around here that mean different things, and I think it's a little confusing that `RSpec::Core::Random.random` returns either `::Random` or `RSpec::Core::Backports::Random`.  (See how many randoms there are in that sentence?)

Instead, what do you think about this?

``` ruby
module RSpec
  module Core
    if defined?(::Random)
      RandomNumberGenerator = ::Random
    else
      require 'rspec/core/backport_random'
      RandomNumberGenerator = RSpec::Core::Backports::Random
    end

    # the rest of the code in this file
  end
end
```

Here's what I like about this:

* Reifies `RandomNumberGenerator` as its own thing by naming it, rather than by hiding it inside `Random.random`.
* Checks `defined?(::Random)` once total, rather than once at the top of the file and once in this method.