A little late, but that is exactly what the permutation table feature of the advanced random plugin is for in C3. A permutation table is a randomized set of nonrepeating numbers.
+ System: On start of layout
-> AdvancedRandom: Create permutation with 50 values starting at 1
// Push permutation table values to array size (0,1,1)
----+ System: Repeat 50 times
-----> Array: Push back AdvancedRandom.Permutation(LoopIndex) on X axis
// If the value 25 is in an index below 20, delete that index, and add 25 at a random index between 20 and the remainingwidth of the array.
----+ System: Array.IndexOf(25) < 20
-----> Array: Delete index Array.IndexOf(25) from X axis
-----> Array: Insert 25 at index floor(random(20,Array.Width)) on X axis