class RSpec::Core::Ordering::Random

def jenkins_hash_digest(string)

to load another part of stdlib, which we try to minimize.
implemented in C) but has the advantage of not requiring us
It's a bit slower than MD5 (primarily because `Digest::MD5` is
Jenkins provides a good distribution and is simpler than MD5.
http://en.wikipedia.org/wiki/Jenkins_hash_function
def jenkins_hash_digest(string)
  hash = 0
  string.each_byte do |byte|
    hash += byte
    hash &= MAX_32_BIT
    hash += ((hash << 10) & MAX_32_BIT)
    hash &= MAX_32_BIT
    hash ^= hash >> 6
  end
  hash += ((hash << 3) & MAX_32_BIT)
  hash &= MAX_32_BIT
  hash ^= hash >> 11
  hash += ((hash << 15) & MAX_32_BIT)
  hash &= MAX_32_BIT
  hash
end