#include #include int* generate() { // this one can be initially mixed too static int arr[] = {1,2,3,4,5,6,7,8,9,10}; int i, pos, val; srand((unsigned int)(time(0) + arr[0])); for(i=0;i<10;i++) { pos = rand() % 10; if(pos == i) { pos = (pos + 1) % 10; } // swap arr[pos] arr[i] val = arr[i]; arr[i] = arr[pos]; arr[pos] = val; } return arr; } void print(int* arr) { int i; for(i=0;i<10;i++) { printf("%d ", arr[i]); } printf("\n"); } int main(void) { int* arr; int i; for(i=0;i<5;i++) { arr = generate(); print(arr); } return 0; }