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.

Please help the service with one click: Tell your friends about the generator!

Number generator online in 1 click

The random number generator, which is presented on our website, is very convenient. For example, it can be used in drawings and lotteries to determine the winner. Winners are determined in this way: the program gives out one or more numbers in any range you specify. The manipulation of the results can be immediately eliminated. And thanks to this, the winner is determined in a fair choice.

Sometimes you need to get a certain number of random numbers at once. For example, you want to fill out a “4 out of 35” lottery ticket, trusting in chance. You can check: if you toss a coin 32 times, what is the probability that 10 reverses will fall out in a row (heads / tails may well be assigned by the numbers 0 and 1)?

Random number online video instruction - randomizer

Our number generator is very easy to use. It does not require downloading a program to a computer - it can be used online. To get the number you need, you need to set the range of random numbers, the number and, if desired, the number separator and exclude repetitions.

To generate random numbers in a specific frequency range:

  • Choose a range;
  • Specify the number of random numbers;
  • The "Number separator" function serves for the beauty and convenience of their display;
  • If necessary, enable / disable repetitions with a checkmark;
  • Click the "Generate" button.

As a result, you will receive random numbers in a given range. The result of the number generator can be copied or sent to e-mail. It would be best to take a screenshot or video of this generation process. Our randomizer will solve any of your tasks!

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-enders and Node.js developers who are at the forefront of technology and want to get into the blockchain project / startup, where questions about security and cryptography, at least at a basic level, are asked even by front-end developers.

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.

Inventing 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 analyze 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 ...).

To generate random numbers in the range you need, it is best to use the Online Random Number Generator. The presence of a large number of options will allow you to select the required number of random numbers, as well as specify the final and initial value.

Online number generator (randomizer) instruction:

By default, the random number generator is entered with 1 number. If you change the application settings, you can simultaneously generate up to 250 random numbers. First you need to set the range. The maximum value of a number is 9,999,999,999. The random number generator allows you to order numbers in descending, ascending, or random order.

To display the result, you can use different separators: semicolon, comma, and space. In addition, repetition is possible. The "Exclude repetitions" option will allow you to get rid of duplications. You can also send a link to the calculations made by messenger or e-mail by copying the "Link to the result".

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.