links: JS MOC


Random life, A guide on how to use random

Javascript has a built in method to generate a random number. It generates a random value between 0 (inclusive) to 1 (exclusive)

let randomVal = Math.random()

Generate random number between two values

The function below generates a random value with min inclusive and max exclusive

function getRandomArbitrary(min, max) {
	return (Math.random() * (max - min)) + min
}

In order to generate random value inclusive of max we need to add 1

function getRandomArbitrary(min, max) {
	return (Math.random() * (max - min + 1)) + min
}

Generate unique random number

Consider a situation where you want to get random element with unique index from an array. Which means if there are 4 elements and you have to generate random index every time without repeats like (2, 3, 0, 1)

export const generateRandomIndexArray = arrayLength => {
	const originalIndices = [...new Array(arrayLength).keys()];
	let indices = [...originalIndices];
	return {
		getRandomIndex: () => {
			if (indices.length === 0) {
				indices = [...originalIndices];
			}
 
			const randomIndex = Math.floor(Math.random() * indices.length);
			const randomIndexVal = indices.splice(randomIndex, 1);
			return randomIndexVal[0];
		},
	};
};

You can use random with a percent chance

Consider you have 100 users and you want to give bonus gift randomly to 10% of the users you can do something like this

const random = Math.random()
// 10% of chance to get value less than 0.1
if(random < 0.1) {
	// give user a bonus
}

tags: math, random

sources: