improve HeapBalancer req distribution when N=2

- with 2 nodes and a stream of sequential requests,
  the HeapBalancer would always choose the same node

In this particular test, with a seed of 0, the distribution ends up being 6/4 with 10 requests, and 51/49 with 100 requests.

Here is some logging code and output I used to test the behavior of `rng.nextInt(size -1)` when N=2:
https://gist.github.com/slackhappy/8a820ae1e477d2b38177