Hi!
One way would be to use advanced indexing and the stdlib function random.shuffle. I used it on a list rather than a call to torch.arange as shuffle seems to go against torch's semantics under the hood.
mat = torch.linspace(1, 16, 16).view(4, 4)

tensor([[ 1.,  2.,  3.,  4.],
        [ 5.,  6.,  7.,  8.],
        [ 9., 10., 11., 12.],
        [13., 14., 15., 16.]])

col_idxs = list(range(mat.shape[1]))
random.shuffle(col_idxs)
mat = mat[:, torch.tensor(col_idxs)]

tensor([[ 2.,  1.,  4.,  1.],
        [ 6.,  5.,  8.,  5.],
        [10.,  9., 12.,  9.],
        [14., 13., 16., 13.]])

Hope that helps!