Any number from 1 to 5. Random number generator

03.03.2020

The presented online random number generator works on the basis of a programmatic pseudo-random number generator built into JavaScript with a uniform distribution. Integers are generated. By default, 10 random numbers are displayed in the range 100...999, the numbers are separated by spaces.

Basic settings of the random number generator:

  • Amount of numbers
  • Number range
  • Separator type
  • On / off the function of removing repetitions (doubles of numbers)

The total number is formally limited to 1000, the maximum number is 1 billion. Separator options: space, comma, semicolon.

Now you know exactly where and how to get a free sequence of random numbers in a given range on the Internet.

Random Number Generator Use Cases

Random number generator (RNG on JS with uniform distribution) will be useful for SMM-specialists and owners of groups and communities in social networks Instagram, Facebook, Vkontakte, Odnoklassniki to determine the winners of lotteries, contests and prize draws.

The random number generator allows you to draw prizes among an arbitrary number of participants with a given number of winners. Contests can be held without reposts and comments - you yourself set the number of participants and the interval for generating random numbers. You can get a set of random numbers online and for free on this site, and you do not need to install any application on your smartphone or program on your computer.

Also, an online random number generator can be used to simulate the tossing of a coin or dice. But by the way, we have separate specialized services for these cases.

We have a sequence of numbers, consisting of almost independent elements that obey a given distribution. Usually evenly distributed.

You can generate random numbers in Excel in different ways and ways. Let's take a look at the best of them.

Random Number Function in Excel

  1. The RAND function returns a random uniformly distributed real number. It will be less than 1, greater than or equal to 0.
  2. The RANDBETWEEN function returns a random integer.

Let's look at their use with examples.

Selecting random numbers with RAND

This function does not require any arguments (RAND()).

To generate a random real number between 1 and 5, for example, use the following formula: =RAND()*(5-1)+1.

The returned random number is evenly distributed over the interval .

Each time the worksheet is calculated, or the value in any cell in the worksheet changes, a new random number is returned. If you want to save the generated population, you can replace the formula with its value.

  1. We click on a cell with a random number.
  2. Highlight the formula in the formula bar.
  3. Press F9. AND ENTER.

Let's check the uniformity of the distribution of random numbers from the first sample using the distribution histogram.


The range of vertical values ​​is frequency. Horizontal - "pockets".



RANDBETWEEN function

The syntax of the RANDBETWEEN function is (lower bound; upper bound). The first argument must be less than the second. Otherwise, the function will throw an error. The bounds are assumed to be integers. The formula discards the fractional part.

An example of using the function:

Random numbers with 0.1 and 0.01 precision:

How to make a random number generator in Excel

Let's make a random number generator with the generation of a value from a certain range. We use a formula like: =INDEX(A1:A10;INTEGER(RAND()*10)+1).

Let's make a random number generator in the range from 0 to 100 with a step of 10.

From the list of text values, you need to select 2 random ones. Using the RAND function, we compare text values ​​in the range A1:A7 with random numbers.

Let's use the INDEX function to select two random text values ​​from the original list.

To select one random value from the list, apply the following formula: =INDEX(A1:A7,RANDBETWEEN(1,COUNT(A1:A7))).

Normal Distribution Random Number Generator

The functions RAND and RANDBETWEEN produce random numbers with a single distribution. Any value with the same probability can fall into the lower limit of the requested range and into the upper one. It turns out a huge spread from the target value.

Normal distribution means that most of the generated numbers are close to the target. Let's correct the RANDBETWEEN formula and create a data array with a normal distribution.

The cost of goods X is 100 rubles. The entire batch produced is subject to a normal distribution. The random variable also follows a normal probability distribution.

Under such conditions, the average value of the range is 100 rubles. Let's generate an array and build a graph with a normal distribution with a standard deviation of 1.5 rubles.

We use the function: =NORMINV(RAND();100;1.5).

Excel calculated which values ​​are in the range of probabilities. Since the probability of producing a product with a cost of 100 rubles is maximum, the formula shows values ​​​​close to 100 more often than the rest.

Let's move on to plotting. First you need to create a table with categories. To do this, we divide the array into periods:

Based on the data obtained, we can form a diagram with a normal distribution. The value axis is the number of variables in the interval, the category axis is the periods.

Numbers surround us from birth and play an important role in life. For many people, the work itself is connected with numbers, someone relies on luck, filling lottery tickets with numbers, and someone gives them a completely mystical meaning. One way or another, sometimes we cannot do without using a program such as random number generator.

For example, you need to organize a prize draw among the subscribers of your group. Our online random number generator will help you choose winners quickly and honestly. You just need, for example, to set the desired number of random numbers (by the number of winners) and the maximum range (by the number of participants, if they are assigned numbers). Fraud in this case is completely excluded.

This program can also serve as a random number generator for lotto. For example, you bought a ticket and want to completely rely on chance and luck in choosing numbers. Then our number randomizer will help fill your lottery ticket.

How to generate a random number: instructions

random number program works very simply. You do not even need to download it to your computer - everything is done in the browser window where this page is open. Random numbers are generated according to the specified number of numbers and their range - from 0 to 999999999.

To generate a number online, you need:

  1. Select the range in which you want to get the result. Perhaps you want to cut off numbers up to 10 or, say, 10000;
  2. Exclude repetitions - by selecting this item, you will force the **number randomizer** to offer you only unique combinations within a certain range;
  3. Select the number of numbers - from 1 to 99999;
  4. Click the Generate Numbers button.

No matter how many numbers you want to get as a result, the prime number generator will give the whole result at once and you can see it on this page by scrolling through the field with numbers using the mouse or touchpad.

Now you can use the ready-made numbers the way you need it. From the number field, you can copy the result for posting to a group or mailing. And so that no one doubts the result, take a screenshot of this page, on which the parameters of the number randomizer and the results of the program will be clearly visible. It is impossible to change the numbers in the field, so the possibility of manipulation is excluded. We hope our website and random number generator helped you.

Have you ever wondered how Math.random() works? What is a random number and how is it obtained? And imagine a question at an interview - write your random number generator in a couple of lines of code. And so, what is it, an accident and is it possible to predict it?

I am very fascinated by various IT puzzles and puzzles, and the random number generator is one of such puzzles. Usually in my telegram channel I sort out all sorts of puzzles and various tasks from interviews. The problem about the random number generator has gained great popularity and I wanted to perpetuate it in the depths of one of the authoritative sources of information - that is, here on Habré.

This material will be useful to all those front-end developers and Node.js developers who are at the forefront of technology and want to get into the blockchain project / startup, where even front-end developers are asked questions about security and cryptography, at least at a basic level.

Pseudo random number generator and random number generator

In order to get something random, we need a source of entropy, a source of some kind of chaos from which we will use to generate randomness.

This source is used to accumulate entropy and then obtain from it the initial value (initial value, seed), which is necessary for random number generators (RNG) to generate random numbers.

The Pseudo-Random Number Generator uses a single seed value, hence its pseudo-randomness, while the Random Number Generator always generates a random number, starting with a high-quality random value that is taken from various sources of entropy.

Entropy - is a measure of disorder. Information entropy is a measure of the uncertainty or unpredictability of information.
It turns out that in order to create a pseudo-random sequence, we need an algorithm that will generate some sequence based on a certain formula. But such a sequence can be predicted. However, let's imagine how we could write our own random number generator if we didn't have Math.random()

PRNG has some algorithm that can be reproduced.
RNG - is getting numbers completely from any noise, the ability to calculate which tends to zero. At the same time, the RNG has certain algorithms for leveling the distribution.

Coming up with our own PRNG algorithm

Pseudo-random number generator (PRNG) is an algorithm that generates a sequence of numbers whose elements are almost independent of each other and obey a given distribution (usually uniform).
We can take a sequence of some numbers and take the modulus of the number from them. The simplest example that comes to mind. We need to think about what sequence to take and the module from what. If just directly from 0 to N and module 2, then you get a generator of 1 and 0:

Function* rand() ( const n = 100; const mod = 2; let i = 0; while (true) ( ​​yield i % mod; if (i++ > n) i = 0; ) ) let i = 0; for (let x of rand()) ( if (i++ > 100) break; console.log(x); )
This function generates for us the sequence 01010101010101 ... and it cannot even be called pseudo-random. For a generator to be random, it must pass the test for the next bit. But we do not have such a task. Nevertheless, even without any tests, we can predict the next sequence, which means that such an algorithm is not suitable in the forehead, but we are in the right direction.

But what if we take some well-known, but non-linear sequence, for example, the number PI. And as a value for the module, we will take not 2, but something else. You can even think about the changing value of the module. The sequence of digits in Pi is considered random. The generator can work using pi starting from some unknown point. An example of such an algorithm, with a PI-based sequence and modulo change:

Const vector = [...Math.PI.toFixed(48).replace(".","")]; function* rand() ( for (let i=3; i<1000; i++) { if (i >99) i = 2; for (let n=0; n But in JS, the number PI can only be displayed up to 48 characters and no more. Therefore, it is still easy to predict such a sequence, and each run of such a generator will always produce the same numbers. But our generator has already begun to show numbers from 0 to 9.

We got a number generator from 0 to 9, but the distribution is very uneven and it will generate the same sequence every time.

We can take not the number Pi, but the time in numerical representation and consider this number as a sequence of digits, and in order to prevent the sequence from repeating each time, we will read it from the end. In total, our algorithm for our PRNG will look like this:

Function* rand() ( let newNumVector = () => [...(+new Date)+""].reverse(); let vector = newNumVector(); let i=2; while (true) ( ​​if ( i++ > 99) i = 2; let n=-1; while (++n< vector.length) yield (vector[n] % i); vector = newNumVector(); } } // TEST: let i = 0; for (let x of rand()) { if (i++ >100) break; console.log(x) )
Now it looks like a pseudo-random number generator. And the same Math.random() - is a PRNG, we'll talk about it a little later. Moreover, each time the first number is different.

Actually, on these simple examples, you can understand how more complex random number generators work. And there are even ready-made algorithms. For example, let's take a look at one of them - this is the Linear Congruent PRNG (LCPRNG).

Linear congruent PRNG

Linear Congruential PRNG (LCPRNG) -  is a common method for generating pseudo-random numbers. It does not have cryptographic strength. This method consists in calculating the terms of a linear recurrent sequence modulo some natural number m given by a formula. The resulting sequence depends on the choice of the starting number - i.e. seed. For different seed values, different sequences of random numbers are obtained. An example of the implementation of such an algorithm in JavaScript:

Const a = 45; const c = 21; const m = 67; varseed = 2; const rand = () => seed = (a * seed + c) % m; for(let i=0; i<30; i++) console.log(rand())
Many programming languages ​​use LCPRNG (but not just such an algorithm (!).

As mentioned above, such a sequence can be predicted. So why do we need PRNG? If we talk about security, then PRNG is a problem. If we talk about other tasks, then these properties  -  can play a plus. For example, for various special effects and graphics animations, you may need to call random frequently. And here the distribution of values ​​​​and performance are important! Security algorithms cannot boast of speed.

Another property - reproducibility. Some implementations allow you to specify a seed, which is very useful if a sequence is to be repeated. Reproduction is necessary in tests, for example. And there are many other things that do not require a secure RNG.

How Math.random() works

The Math.random() method returns a pseudo-random floating point number from the range = crypto.getRandomValues(new Uint8Array(1)); console log(rvalue)
But, unlike PRNG Math.random(), this method is very resource intensive. The fact is that this generator uses system calls in the OS to access entropy sources (poppy address, cpu, temperature, etc ...).



Similar articles