Need to randomise packed fixed array such that unique elements are generated and the elements are between 0 to 100

I have a packed fixed array of 100 elements which are of 32 bits. I need to randomise them in such a way that those 100 elements have unique values between 0 to 100. The following is my code.
I have declared a class called special, which declares a rand packed fixed array array5. I created object of this class inside module fixed size_array.


class special;
  rand bit[99:0][31:0] array5;
  
  constraint unique_array5_con {unique{array5}; foreach(array5[i]) array5[i] < 100;}
  
  function void display();
    
    $display("-------displaying uninitialized array5-------");
    for(int i=0;i<100;i++) $display("\t array5[%0d] = %0d",i,array5[i]);
    
  endfunction
  
endclass

module fixedsize_array;
  //declaration of class
  special sp;
 
  initial begin
    
    sp = new();
    sp.randomize();
    sp.display();
  end
endmodule

The following is the output.

------displaying uninitialized array5-------
	 array5[0] = 89
	 array5[1] = 18
	 array5[2] = 25
	 array5[3] = 86
	 array5[4] = 82
	 array5[5] = 98 
	 array5[6] = 98
	 array5[7] = 28
	 array5[8] = 40
	 array5[9] = 6
	 array5[10] = 9
	 array5[11] = 72
	 array5[12] = 91
	 array5[13] = 51
	 array5[14] = 49
	 array5[15] = 91
	 array5[16] = 36
	 array5[17] = 75
	 array5[18] = 74
	 array5[19] = 80
	 array5[20] = 30
	 array5[21] = 80
	 array5[22] = 16
	 array5[23] = 80
	 array5[24] = 66
	 array5[25] = 25
	 array5[26] = 37
	 array5[27] = 89
	 array5[28] = 5
	 array5[29] = 66
	 array5[30] = 73
	 array5[31] = 76
	 array5[32] = 39
	 array5[33] = 88
	 array5[34] = 72
	 array5[35] = 59
	 array5[36] = 90
	 array5[37] = 93
	 array5[38] = 97
	 array5[39] = 51
	 array5[40] = 65
	 array5[41] = 97
	 array5[42] = 27
	 array5[43] = 62
	 array5[44] = 89
	 array5[45] = 20
	 array5[46] = 7
	 array5[47] = 5
	 array5[48] = 74
	 array5[49] = 32
	 array5[50] = 89
	 array5[51] = 91
	 array5[52] = 11
	 array5[53] = 66
	 array5[54] = 61
	 array5[55] = 52
	 array5[56] = 6
	 array5[57] = 56
	 array5[58] = 55
	 array5[59] = 27
	 array5[60] = 90
	 array5[61] = 92
	 array5[62] = 63
	 array5[63] = 70
	 array5[64] = 50
	 array5[65] = 57
	 array5[66] = 35
	 array5[67] = 74
	 array5[68] = 45
	 array5[69] = 39
	 array5[70] = 70
	 array5[71] = 88
	 array5[72] = 35
	 array5[73] = 8
	 array5[74] = 30
	 array5[75] = 47
	 array5[76] = 41
	 array5[77] = 53
	 array5[78] = 36
	 array5[79] = 63
	 array5[80] = 90
	 array5[81] = 46
	 array5[82] = 25
	 array5[83] = 87
	 array5[84] = 85
	 array5[85] = 65
	 array5[86] = 49
	 array5[87] = 69
	 array5[88] = 88
	 array5[89] = 21
	 array5[90] = 40
	 array5[91] = 9
	 array5[92] = 4
	 array5[93] = 38
	 array5[94] = 32
	 array5[95] = 57
	 array5[96] = 31
	 array5[97] = 76
	 array5[98] = 26
	 array5[99] = 96

From the log I observe that array5[5] and array5[6] are having the same value which is 98.
Even though I have written a constraint which has unique{array5}, I still see this issue.

In reply to VY18:

The unique constraint works on unpacked arrays. It treats array5 as a singular packed 3200-bit value. You should declare your array as

rand bit [31:0] array5[99:0];