How to generate random number without duplicates in Excel?

In many cases, you may want to generate random numbers in Excel? But with the general formulas to randomize numbers, there may be some duplicate values. Here I will tell you some tricks to generate random numbers without duplicates in Excel.

Easily Insert Random Data without duplicates in a range of cells

If you want to insert random and no duplicate integer numbers, dates, times or strings, even custom lists into a range of cells, the forumula maybe hard to remember. But Kutools for Excel's Inser Random Data can quickly handle these jobs as easily as possible. Click for full features 60 days free trial!

To generate the unique random numbers in Excel, you need to use two formulas.

1． Suppose you need to generate random numbers without duplicates into column A and column B, now select cell E1, and type this formula =RAND(), then press Enter key, see screenshot:

2. And select the whole column E by pressing Ctrl + Space keys simultaneously, and then press Ctrl + D keys to apply the formula =RAND() to the whole column E. See screenshot:

3. Then in the cell D1, type the maximum number of your needed random number. In here case, I want to insert random numbers without repeated between 1 and 50, so I will type 50 into D1.

4. Now go to Column A, select cell A1, type this formula =IF(ROW()-ROW(A$1)+1>$D$1/2,"",RANK(OFFSET($E$1,ROW()-ROW(A$1)+(COLUMN()-COLUMN($A1))*($D$1/2),),$E$1:INDEX($E$1:$E$1000,$D$1))), then drag the fill handle to next column B, and drag down the fill handle to the range you need. See screenshot:

Now, in this range, the random numbers you need are no repeated.

Note:

1. In the above long formula, A1 indicates the cell you use the long formula, D1 indicates the maximum number of the random number, E1 is the first cell of column you apply formula =RAND(), and 2 indicates you want to insert random number into two columns. You can change them as your need.

2. When all the unique numbers are generated into the range, the redundant cells will be shown as blank.

3. With this method, you just can generate random number start from number 1. But with the second way, you can easily specify the random number range.

Generate unique random number with Kutools for Excel’s Insert Random Data

With above formulas, there are too much inconvenience to handle. But with Kutools for Excel’s Insert Random Data feature, you can quickly and easily to insert the unique random numbers as your need which will saves a lot of time.

Less Time but Higher Productivity

Includes 300+ professional tools for Excel 2019-2003 First version 1.0 was released in 2011, now is the version 18.0 Solves most Excel daily complex tasks in seconds, save your time 60-day free trial without any limitation

1. Select the range you need to generate random numbers, and click Kutools > Insert > Insert Random Data. See screenshot:

2. In the Insert Random Data dialog, go to the Integer tab, type the number range you need into the From and To text boxes, and remember to check Unique values option. See screenshot:

3. Click Ok to generate the random numbers and exit the dialog.

Note:If your selected cells are more than the random numbers, the redundant cells are displayed as blank.

You also can insert the random unique date, random unique time by Insert Random Data. If you want to have a free trial of Insert Random Data, please downloan it right now!

Tip.If you want to select or sort data randomly, please try to use the Kutools for Excel’s Sort Range Randomly as shown in the following screenshot. It’s full function without limitation in 60 days, please download and have a free trial now.

Quickly Insert multiple checkboxes or buttons into a range of cells in worksheet

In Excel, you only can insert one checkbox/button into a cell once time, it will be troublesome if there are multiple cells needed to be inserted checkboxes/buttons at the same time. Kutools for Excel has a powerful utility -- Batch Insert CheckBoxes / Batch Insert Option Buttons can insert checkboxes/buttons into the selected cells with one click . Click for full-featured free trial in 60-day!

Your custom list is in Column A. Lets say it has 100 values and it is located in A1:A100

Column B is a counter:
1 for B1 and (B1+1) for B2:B100

Column C is a random list:
RAND() for C1:C100

Column D is a random rank based on the random list:
RANK.EQ(C1;$C$1:$C$100)

Column E is your output:
INDEX($A$1:$A$100;MATCH(D1;$B$1:$B$100;0))

Note: There is virtually no chance of generating a duplicate value on column C since RAND() have billions of possibilities. But, if you really want to erase that chance you can type the following formula at column D2:D100
IF(COUNTIFS($C$2:C2;C2)>0;D1+1;RANK.EQ(C2;$C$1:$C$100))

I need to create 5000 random numbers 1-90 no duplicates 30 columes I and using the formula =RAND() and =IF(ROW()-ROW(A$1)+1>$D$1/2,"",RANK(OFFSET($E$1,ROW()-ROW(A$1)+(COLUMN()-COLUMN($A1))*($D$1/2),),$E$1:INDEX($E$1:$E$1000,$D$1))) is there way that i could change the formula to extract the 5000 numbers

After about three hours of trying to completely understand the long complicated formula to generate random numbers without duplicates, I figured out a far simpler formula that has the same results. After you randomly generate the numbers in a column using the RAND() function, You can simplify the formula:=IF(ROW()-ROW(A$1)+1>$D$1/2,"",RANK(OFFSET($E$1,ROW()-ROW(A$1)+(COLUMN()-COLUMN($A1))*($D$1/2),),$E$1:INDEX($E$1:$E$1000,$D$1))) in cell a1 to =Rank(E1,$E$1:$E$50). Then if you would like 50 random generated "unique numbers." you simply drag the formula through column a to cell a50. It is a lot simpler. Thank you for answering my question regardless of the huge unneeded formula. If you did not have this website. I don't think I would have been able to solve my problem.

The formula RAND() has hundreds of billions of possibilities, but even so you can use a conditional to not repeat the numbers:
A1 = Rank(E1,$E$1:$E$50)
A2 = IF(COUNTIFS($E$1:E1;E1)>1;A1+1;Rank(E2,$E$1:$E$50)

Hi, Base on [b]Generate unique random numbers with formulas [/b], How can I specify the starting point of a random number? Let's say I want to random "15 to 30".