How to generate random numbers and text
What's on this page
Microsoft Excel has three useful functions for generating random numbers, the RAND, RANDBETWEEN, and the RANDARRAY functions.
The RAND function returns a random decimal number equal to or larger than 0 (zero) and smaller than 1. Example: 0.600842025092928
The RANDARRAY function calculates an array of random numbers. It allows you to choose integers or decimal values, how many rows and columns to fill and the number range.
This is a new function available for Excel 365 subscribers in the monthly channel, it automatically spills values across rows and columns without the need to enter it as an array formula. This is called spilled array behavior and is a new feature in Excel.
RANDBETWEEN function returns random integers in a range you specify. The function has two arguments: bottom and top. An integer is a whole number (contrary a fractional number) that can be positive, negative, or zero.
RANDBETWEEN(bottom, top)
Bottom is the lowest number in the range of numbers you want to return. Top is the highest number in the range.
Example, RANDBETWEEN(1,10) generates random numbers between 1 to 10.
Formula in cell range A2:A11:
As shown above, there are duplicates. If you don't want duplicates, read this post: How to create a list of random unique numbers
Generate numbers with a decimal
In this example, the RANDBETWEEN function generates random numbers between 2 and 4 with a decimal.
Formula in cell range A2:A11:
Since it actually can't generate numbers with decimals the function generates values between 20 to 40. Divide the output with 10 and the range becomes 2.0 to 4.0.
Generate negative numbers with two decimals
In this example, the RANDBETWEEN function generates random numbers between 1 and 0.9 with two decimals.
Formula in cell range A2:A11:
The function generates numbers between 100 and 90. The returned number is then divided by 100. The range becomes 1.00 to 0.90.
Generate negative numbers with three decimals
Here, the RANDBETWEEN function generates random negative numbers between 1010.000 and 1000.000
Formula in cell range A2:A11:
The function generates numbers between 1010000 and 1000000. The returned number is then divided by 1000. The range becomes 1010.000 to 1000.000
Generate random names
The formula in cell B3 returns random names from cell range A3:A13.
Formula:
Explaining formula in cell B3
I recommend that you use Excel's builtin tool for examining formulas, it is a great feature that allows you to see the calculations steps at a pace you are comfortable with.
Go to tab "Formulas" on the ribbon. Click on "Evaluate Formula" button to open the "Evaluate Formula" dialog box.
Click "Evaluate" button to move the calculation to the next step, continue clicking the "Evaluate" button until all steps have been shown. Click the "Close" to dismiss the dialog box.
Step 1  Generate random value between 1 and 11
RANDBETWEEN(1,11) returns a number between 1 to 11
Step 2  Return a value of the cell at the intersection of a particular row and column
The INDEX function allows you to return a value from a given range.
INDEX(array, row_num, [column_num])
INDEX($A$3:$A$13, random_value)
The given range is $A$3:$A$13 and there are 11 cells in that range. Therefore, we need to return a random value between 1 and 11.
RANDBETWEEN(1, 11) returns a number between 1 to 11. The INDEX function then returns a random value from cell range $A$3:$A$13 in cell B3.
You can use the formula in the following post to return unique distinct names: How to create a list of random unique numbers
Generate a random list
The following steps show you how to randomly shuffle a list. The image above shows names in cell range A3:A13.
 Select cell range B3:B13
 Type =RAND()
 Press and hold CTRL + Enter. This will enter the formula in all cells at once, no need to copy the formula and paste to cells below.
 Select cell range A3:B13

Rightclick on the selected cell range.
 Click Sort.

Click "Custom Sort..." and a dialog box appears.
 Sort by: Column B
 Order: Smallest to Largest
 Click OK button.
The image above shows the list sorted in a random order.
Create random text strings
The image above demonstrates a formula in cell range A2:A11 that returns four random characters concatenated into one text string. The characters are lower letters between a and z.
Formula:
Explaining formula in cell A2
Step 1  Return a random number between 97 and 122
So why return a number between 97 and 122? All characters have a numeric code and the CODE function lets you convert a character to a numeric code.
For example, a is 97 and z is 122. By generating random numbers between 97 and 122 we can create characters from a to z.
RANDBETWEEN(97,122)
Step 2  Return a character specified by a code number
The CHAR function converts a number to the corresponding character. This is determined by your computer's character set.
CHAR(RANDBETWEEN(97,122))
returns a random character from a to z.
Step 3  Combine four characters
The ampersand operator & combines different functions to a text string. The are four instances of the formula above, the ampersand concatenates the output from each and returns a text string containing four lower letters.
CHAR(RANDBETWEEN(97,122))& CHAR(RANDBETWEEN(97,122))& CHAR(RANDBETWEEN(97,122))& CHAR(RANDBETWEEN(97,122))
Quickly select a data set or an excel defined table [HYPERLINK]
If you often copy data sets or tables, the following technique might be interesting! The animated gif shows two hyperlinks, [โฆ]
Use CHAR function to convert a number to the corresponding character. This is determined by your computers character set. Windows ANSI [โฆ]
The RAND function calculates a random real number greater than or equal to 0 and less than 1. The function [โฆ]
How to create a list of random unique numbers
Question: How do I create a random list of unique numbers from say 1 to 10, without using VBA and [โฆ]
How to use the RANDBETWEEN function
Returns a random whole number between the numbers you specify. This function is volatile meaning a new random number is [โฆ]
10 Responses to โHow to generate random numbers and textโ
Leave a Reply
How to comment
How to add a formula to your comment
<code>Insert your formula here.</code>
Convert less than and larger than signs
Use html character entities instead of less than and larger than signs.
< becomes < and > becomes >
How to add VBA code to your comment
[vb 1="vbnet" language=","]
Put your VBA code here.
[/vb]
How to add a picture to your comment:
Upload picture to postimage.org or imgur
Paste image link to your comment.
Contact Oscar
You can contact me through this contact form
How do you create a random number between 38 and +34 ?
My test sometimes produces numbers outside the low and high.
John
Does this produce numbers outside 38 and 34?
=RANDBETWEEN(38,34)
Oscar, Thank you for your response.
Yes, the RANDBETWEEN does work with whole numbers.
I misstated the problem. I meant to state: random number between 38.5% and 34.1%. It is the RAND()function that creates numbers outside the High and Low percentages.
Sorry for the confusion.
John
I understand, try this:
=RANDBETWEEN(385,341)/10
or this
=RANDBETWEEN(340,340)/1000 and format the cells %.
104...worked fine. I used the 1000 divisor in order to create a true percentage result which is then used as a multiplier.
It sure looks simple when you see the answer...guess I just had a V8 moment.
(I still don't know why my RAND() function did not work properly, but am not willing to spend any more time trying to figure it out.)
Thanks again for your help. Keep up the good work.
JB
John,
thank you. I had to google both 104 and V8. :)
How to create a random number and text
Example :
If select cell A1, then result below
KSPC00009000KSPC00009999
If select cell B1, then result below
KSPR00009000KSPR00009999
Atha,
Cell A1:
="KSPC0000"&RANDBETWEEN(9000,9999)
Cell B1:
="KSPR0000"&RANDBETWEEN(9000,9999)
Mr Oscar, thanks for your help, its work for me.
Mr Oscar,
How to Generate a New Number & Text to case below (VBA) :
textbox1 : save the result in Cell A2
commandbutton1 : Generate new random ie KSPC00009000KSPC00009999
Generate a new number and not duplicate with range A2:A100
If there's a duplicate, then generate a new number again, until there's a unique value, save it and proceed to the next until it is finished.
I've tried this code but not running in case number & text
Thanks