Based on your description it seems you would like to return shuffled pairs of data.
If that’s the case, I think the easiest way would be to return the pairs in Dataset.__getitem__ and reduce the length of the Dataset by 2x.
Let me know, if this would work for you.