Replace Kernel.srand with Random.new 

Hello,

*The problem*:

I have found that when I run my  tests using random order Kernel.rand returns unexpected results as for me.
 
Simplified example just to show a concept:
```
describe "something" do

   let(:my_rand_value) { rand }

   it("out rand value") { puts my_rand_value }

   it("out rand value") { puts my_rand_value }

end
```
My expectation is 2 different numbers in output but they are the same.

*The reason*:
This happens because under the hood  Kernel.srand is called with seed from config.

*The fix*:
In this pull request I have added the test on this situation and also provide code to fix it.

Note: the test looks ugly and I need help to improve it.