I've done something like this before... different, but similar. I wanted to randomize the positions of consecutive numbers to shuffle them. I think I randomly selected the number for the 1 spot. The random number was based on the max number of array indices. I moved that value at that location to the 1st spot. Then, I shift things in the choice array then, reduce the range of my random call to match the decrease of available indices. So I never had to check for duplicates, because I knew I had a clean number and position to place it in within the shuffled array. It's some extra work to shift items, but if this is an infrequent bit of processing it's no biggy. I needed to do this at the start/restart of a puzzle game I did in another language, but the same principle exists in Fuze.