Create a parent list called BlockList. It should look like this ...
1-Block 1
2-Block 2
3-Block 3
4-Block 4
Now create a constructed list called BlockConList ...
ADD(BlockList)
Randomize()
Let's assume Part B is made up of 8 questions as follows ...
B1-B2 - Block 1
B3-B4 - Block 2
B5-B6 - Block 3
B7-B8 - Block 4
Now click on the Randomize button and select Blocks. Now click Add Set and then Add Block (do this for each block). Enter in your 4 blocks (as defined above). Select the "Use constructed List" option and choose BlockConList.
So now this will work fine and display all 4 blocks of questions randomised. You only want to display one block though.
Time to insert some skips to handle this issue.
Apply these skips for each block ...
Block 1:
Skip from: B1
Skip type: Pre-skip
Skip logic: Not(Value(BlockConList,1)=1)
Skip to: <End of Block>
Block 2:
Skip from: B3
Skip type: Pre-skip
Skip logic: Not(Value(BlockConList,1)=2)
Skip to: <End of Block>
Block 3:
Skip from: B5
Skip type: Pre-skip
Skip logic: Not(Value(BlockConList,1)=3)
Skip to: <End of Block>
Block 4:
Skip from: B7
Skip type: Pre-skip
Skip logic: Not(Value(BlockConList,1)=4)
Skip to: <End of Block>
Now you have it working where only one block will be randomly displayed in Part B.
Good luck.