I have a dataframe which is structed as followed:

```
>>>df
   a  b  id  
0  1  4  3  
1  4  1  2  
2  7  5  1

3  2  9  3
4  4  11 2
5  2  7  1

6  3  4  2
7  9  2  1

```

I have added paragraphs in code for readability.

Now I want to shuffle according id but keep the initial descending order of column id True. What is the best way?
A possible output would look like following:

```
>>>df
   a  b  id  
0  3  4  2
1  9  2  1

2  2  9  3
3  4  11 2
4  2  7  1

5  1  4  3  
6  4  1  2  
7  7  5  1

```

So in principle I just want the blocks to mix or to be randomly placed in another place.