#!/usr/bin/gawk -f BEGIN{ FS=OFS=","; INGNORECASE=1; data=0; datas=0; } data==0{print;} data==1{datum[datas++]=$0;} /@data/{data=1; next; } END{ srand(seed); for ( i = 0; i < datas; i++ ) { item = int( rand() * datas ); while ( item in printed ) item = int( rand() * datas ); printed[item] = 1; print datum[item]; } }