d3.shuffle a subset of an array and tests for d3.shuffle.

d3.shuffle takes two extra optional arguments that work on array
subsets: d3.shuffle(array[, i0[, i1]]). If given just array, then
shuffles entire array. If given array and i0, shuffles from index i0 to
the end of the array. If given array, i0, and i1, shuffles between i0
and i1. Tests for d3.shuffle also added.

See #1865.