Как сделать такой счётчик на js?
Достал из своего старого плагина функцию фейковой рандомизации с сидированием. Если интересно погуглите random seeding./**
 * Рандомизация с сидированием
 * @param {number} seed - сид значение
 * @return {number/boolean} - случайное значение из переданного сид значения
**/
function Random(seed) {
	this.number = function(min, max, fixed) {
		if (!fixed) fixed = 'floor';
		max = max || 1;
		min = min || 0;
		seed = (seed * 9301 + 49297) % 233280;
		var rnd = seed / 233280;
		switch(fixed.toLowerCase()) {
			case 'floor': {
				return Math.floor(min + rnd * (max - min));
			}
			case 'float': {
				return min + rnd * (max - min);
			}
		}
	},
	this.boolean = function(rate) {
		if (!rate) rate = 50;
		seed++;
		return Math.sin(seed) <= rate / 100;
	}
}
Как использоватьvar rand = new Random(62086296325); //> seed
rand.number(1, 5, 'floor'); //> 2 (у всех пользователей)
Генерируемое случайным образом число на клиенте будет у всех разное, если не совпадет таким же случайным образом.
Чтобы было одинаковое, нужно на сервере генерировать число, куда то сохранять и отдавать клиенту.