Reseeding will not help you. It will just jump somewhere else into the (very very) long MT sequence. Are-you sure shuffling your data gives you a biased result? Because you will never have enough hours in the universe lifetime to generate all possible sequences. So even if you know that some sequences can possibly never be generated, it doesn't mean that generated sequences will be biased. I guess your best bet is simply to use the shuffle command as it.
If you look at numpy.random.shuffle source code (line 4376), here is basically the algorithm used (I simplified it for clarity):
i = len(x) - 1
while i > 0:
j = randint(0, i)
x[i], x[j] = x[j], x[i]
i = i - 1
In other words, beginning from the end, it swaps the value with a random value taken randomly before it in the array, until all values are swapped. The final state not only depends on the random generator, but also on the initial state of the array. It means that in theory, you should be able to visit all permutations, if you perform enough shuffles.