I created a python script that generate a bash script. I don't think is the most elegant way, but works quite well.
import csv
FILENAME = 'my_huge_csv.csv'
with open(FILENAME,'r') as f:
reader = csv.reader(f,delimiter=',')
NCOL = len(next(reader))
with open("shuffle_{}.sh".format(FILENAME),"w+") as f:
f.write("#/bin/bash \n")
f.write("/usr/bin/head -n 1 {} > final.csv \n".format(FILENAME))
for i in range(NCOL):
f.write("/usr/bin/tail -n +2 {}|/usr/bin/cut -d, -f{}|shuf > tmp_file_{}.csv &\n".format(FILENAME, i+1,i+1))
f.write("wait \n")
cut_arg = ['tmp_file_{}.csv'.format(i+1) for i in range(NCOL)]
cut_cmd = '/usr/bin/paste -d , ' + ' '.join(cut_arg) + ' >> final.csv \n'
f.write(cut_cmd)
f.write('rm '+ ' '.join(cut_arg) + ' \n')
Than I have to simply execute chmod +x on my script and running it.