Do you want to shuffle the passed indices in the SubsetRandomSampler or would you like to shuffle the global indices again and create new subsets?
In the former case the indices would already be reshuffled in each epoch as seen here:
class MyDataset(Dataset):
    def __init__(self):
        pass
    
    def __getitem__(self, index):
        print(index)
        return torch.randn(1)
    
    def __len__(self):
        return 10


indices = torch.arange(10)
sampler = torch.utils.data.sampler.SubsetRandomSampler(indices)
dataset = MyDataset()
loader = DataLoader(dataset, sampler=sampler)

for epoch in range(2):
    print(epoch)
    for _ in loader:
        pass