Shuffle rows after routines

I think you want to have independent randomisation of your rows (using the loop randomisation) and the chosen column.

You could look at my independent randomisation demo, but the principle would be to have a shuffled array containing 1 to 4 5 times and then some code to select the column based on the value popped from that array.

Begin Experiment

conditions = [1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
shuffle(conditions)

Begin Routine

condition = conditions.pop()
if condition == 1:
     thisText = shame_condition
     thisExp.addData('Condition','shame')
elif  condition == 2:
     ....