ADOBE AFTER EFFECTS: Forum Expressions Tutorials Creative Cloud

# Range of Numbers without Repeating

FAQ   •   VIEW ALL
 Range of Numbers without Repeating on Nov 16, 2018 at 2:24:28 pm

I'm trying to generate a random whole number between 0 and 64 without repeating. I've seen a few other threads with somewhat similar goals, but I can't quite get there. Here's what I have so far, but they're still repeating...

```var holdTime = 10; seedRandom(Math.floor(time/holdTime), timeless = true); var nums = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64], ranNums = [], i = nums.length, j = 0; while (i--) { j = Math.floor(random() * (i+1)); ranNums.push(nums[j]); nums.splice(j,1); }```

 Re: Range of Numbers without Repeatingon Nov 16, 2018 at 4:46:22 pm

I'm not sure this is exactly what you're after, but it should give a sequence without repeats:

``` var holdTime = 10; seedRandom(index+Math.floor(time/(holdTime*65)),true); nums = []; for (i = 0; i <= 64; i++) nums.push(i); for (i = 0; i < nums.length; i++){ idx = i + Math.floor(random(nums.length - i)); temp = nums[i]; nums[i] = nums[idx]; nums[idx] = temp; } idx = Math.floor(time/holdTime)%nums.length; nums[idx]; ```

If you go beyond the first sequence (65 numbers), you should get a different, non-repeating sequence, so it's possible the 66th number could match the 65th. If that's a problem, you could make a slight modification so that the first sequence just repeats.

Dan

Dan

 Re: Range of Numbers without Repeatingon Nov 16, 2018 at 5:23:41 pm

Dan the man!

I can't thank you enough, this is exactly what I was trying to accomplish!

Thanks again for you time and help!