Splunk Search

## How do I generate a random number between a specific range?

Path Finder

Hi, How can I generate a random number between 1 to 20. I random() function doesn't allow to specify a range. please help

Tags (1)
Ultra Champion

One thing - in case of small ranges it might be negligible but if you want a random number from a big range (like between 0 and 1.5*2^30) performing a modulo on random() will not give you uniform distribution.

Engager

@PickleRick I was not aware of this. Thanks for pointing it out.

Contributor

Building a bit on @richgalloway 's answer I believe this works and allows you to set the high and low range. I added just some extra fluff for testing, your eval line could just look line 4 with high and low replaced with your range:

``````| makeresults
| eval high = 100
| eval low = 10
| eval rand = round(((random() % high)/(high)) * (high - low) + low)
| eval inRange = if(rand <= high AND rand >= low, "True", "False")
``````
Engager

@worshamn Kudos! Building on your solution I slightly simplified the math.

``````...
| eval rand = random() % (high - low + 1) + low
...``````

Esteemed Legend

@ppablo_splunk , this one should get moderator-answered.

SplunkTrust

Try using the modulo operator. For example, `... | eval rand=(random() % 20) + 1 | ...`.

---
If this reply helps you, an upvote would be appreciated.
*NEW* Splunk Love Promo!
Snag a \$25 Visa Gift Card for Giving Your Review!

### It's another Splunk Love Special! For a limited time, you can review one of our select Splunk products through Gartner Peer Insights and receive a \$25 Visa gift card! Review: SOAR (f.k.a. Phantom) >> Enterprise Security >> Splunk Enterprise or Cloud for Security >> Observability >> Or Learn More in Our Blog >>

Get Updates on the Splunk Community!