How to generate random value based on assigned probability in Excel?

If there is a table with some values and corresponding assigned percentages as below screenshot shown in a sheet. And now, I want to generate random values based on the list of values and their assigned probabilities.
doc random with probability 1

Generate random value with probability


arrow blue right bubble Generate random value with probability

In fact, to generate random values with the probability, you only need two formulas.

1. In adjacent cell of the table, type this formula =SUM($B$2:B2), and drag this formula down to the cells you need. See screenshot:
doc random with probability 2

2. Select a blank cell which you will place the random value at, type this formula =INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1), press Enter key. And press F9 key to refresh the value as you need.
doc random with probability 3


Relative Articles:


The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    KYRIACOS · 5 months ago
    THE FORMULA WORKS ONLY IF ONE SUBSTITUTES RAND() WITH RANDBETWEEN(1;X) WHERE X IS THE TOTAL NUMBER OF POSSIBLE OUTCOMES, WHICH WOULD SIMPLY BY AN INTEGER GREATER THAN 1.
  • To post as a guest, your comment is unpublished.
    kyrIACOS · 5 months ago
    frankly I don't think this formula works.
    I am trying to sample the results of an election so I have in a row the votes of different parties. no I want to go in & pick up randomly ten ballots (sort of like exit polling works), but I always get the first party in the rows.
  • To post as a guest, your comment is unpublished.
    Preston Ehrsam · 1 years ago
    How can I utilize this random number generator but only have it generate odd or even numbers inside of the criteria? When I add the "ODD" or "EVEN" coding, it only produces the number "1" in the cell.
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      Hi, Preston Ehrsam, the Insert Random Data tool cannot insert random even or odd numbers only.
  • To post as a guest, your comment is unpublished.
    Chudi · 2 years ago
    Sorry Just Noticed that I extend the cumulative prob. outside the desired limits
  • To post as a guest, your comment is unpublished.
    Chudi · 2 years ago
    Does this work if the data in the cells are horizontal instead of vertical? Mine is not. Thanks
  • To post as a guest, your comment is unpublished.
    Maria · 2 years ago
    Hello, can anyone help me getting the correct formula? I would like to get random values but with certain limits. For example, randomly get "red, blue, green, orange or pink", but I have a specific quantity of items for each color so I have to set this condition within the formula.
    Thanks!
    • To post as a guest, your comment is unpublished.
      Sunny · 2 years ago
      You can try the Insert Random Data to create the custom list as red, blue, green, orange and pink, then insert then to range randomly.
  • To post as a guest, your comment is unpublished.
    Steve · 3 years ago
    Why do the values from this function change every time I make an adjustment to the worksheet? I can't test my sample data if the results keep changing
    • To post as a guest, your comment is unpublished.
      KYRIACOS · 5 months ago
      ITS A COMMON ISSUE IN RANDOMLY GENERATED INTEGERS. WHEN THEY ARE GENERATED, THE RANDOM NUMBERS, TAKE THEM & COPY & PASTE SPECIAL THEM AS VALUES, THIS WAY THEY WONT CHANGE ANYLONGER. BUT YOU WILL LOSE THE FORMULA. BEST TO USE A DIFFERENT WORKSHEET IN THE SAME SPREADSHEET.

    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      Sorry, the formula will keep changing while adjusting the sheet because the formula contains RAND() function.
  • To post as a guest, your comment is unpublished.
    Gerald · 3 years ago
    Anyone know how I would go about doing this without replacement using probability pools. Here's an example: Pool A has 10 people. Pool B has 7 People. There is an 80% probability we will pull someone from Pool A; 20% probability we will pull someone from pool B. We want to randomly pick 5 people from the 2 pools without replacement. Even without replacement, the probability of pulling from either pool stays at 80/20. Any Ideas?
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      Sorry that I have not found a solustion for your question. If you find a answer, would you mind to let me know?
  • To post as a guest, your comment is unpublished.
    Preston Ehrsam · 3 years ago
    =INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1)



    What does the +1 in this formula do?
    • To post as a guest, your comment is unpublished.
      Sunny · 3 years ago
      Hello, beacause the cumulative column I count the rows that are less or equal to 1, but the RAND() function only work from 0-0.9999, if you do not +1, the last one value G cannot be randomly choosed forever.