Generate unique elements in an array

In reply to dave_59:

Thanks Dave for quick reply. I did not see any error or warning. I still see weird behavior with code that you asked me to modify. However with that code i see that both the other constraint works fine.
notice that i modified code , converted bit to int and i want to make sure int are generated in specific range. is it a proper way to do it? or any other better way can you suggest ?>

constraint rand_num{foreach (num[i]) i+1 < $size(num) → num[I+1] != num[i];};



  rand int unsigned  num [10];
  rand int unsigned  data[10];
  rand int unsigned  uniqnum[10];

  constraint rand_num{foreach (num[i]) i+1 < $size(num) -> num[i+1] != num[i];
                      foreach (num[i]) num[i] inside {[0:20]};   
                  };
  constraint data_values { foreach(data[i]) 
                               foreach(data[j])
                                 if(i != j) data[i] != data [j] ;} 
  constraint rand_unitnum{unique {uniqnum};}
[\systemverilog]


num[0] 11
num[1] 10
num[2] 5
num[3] 18
num[4] 1
num[5] 8
num[6] 17
num[7] 6
num[8] 17
num[9] 12
uniqnum[0] 2585900447
uniqnum[1] 2885502533
uniqnum[2] 4138482668
uniqnum[3] 3688754642
uniqnum[4] 565161356
uniqnum[5] 3727708039
uniqnum[6] 1611526103
uniqnum[7] 1088663520
uniqnum[8] 405083532
uniqnum[9] 1919651944
data[0]  3040365644
data[1]  1549177249
data[2]  2520948884
data[3]  671157517
data[4]  3642241582
data[5]  1668691443
data[6]  2694328522
data[7]  616240321
data[8]  2242663180
data[9]  3757757259