小型数列なら配置用の配列を使うかな
static int sr[3][10]={{9,2,5,…}.{4,9,7,…},{0,5,4,…}};
#define F(a,b,c) (b[0]=a[0], b[1]=a[1],…,c=&sr[rand()%3],a[0]=b[*c[0]],…, a[9]=b[*c[9]],a)

int num[10]={0,1,…},tmp[10],(*mxr)[10];
F(num,tmp,mxr);