este código mezcla con éxito el orden de los números de teléfono cada vez que se actualizan las páginas. Lo que estoy tratando de hacer es crear un botón Llámenos que seleccione un número de teléfono de la matriz "var = arr" y asignarlo al botón, pero cuando la página se actualice, el número asignado del botón debe cambiarse para que el cliente pueda llamar a un número diferente cada vez.
$(document).ready(function() { function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; while (0 !== currentIndex) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } var arr = ['<div class="class1"><a href="tel:+17866331938"><p>+1 786 633 19 38</p></a></div>', '<div class="class2"><a href="tel:+17866331298"><p>+1 786 633 12 98</p></a></div>', '<div class="class3"><a href="tel:+17866331903"><p>+1 786 633 19 03</p></a></div>', '<div class="class4"><a href="tel:+17865741168"><p>+1 786 574 11 68</p></a></div>' ]; arr = shuffle(arr); arr.map(function(k, v) { $(".div-wrap").append(k); }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="div-wrap"></div>forEach es un mejor método aquí. No necesita claves y no necesita una nueva matriz.href .Conceptos clave:
document.addEventListener('DOMContentLoaded', function() { function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; while (0 !== currentIndex) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } var arr = ['1 786 633 19 38', '1 786 633 12 98', '1 786 633 19 03', '1 786 574 11 68']; arr = shuffle(arr); arr.forEach(function(v) { const el = `<p><a href="tel:+${v.replace(/ /g,'')}">+${v}</a></p>`; document.querySelector(".div-wrap").insertAdjacentHTML('beforeend', el); }); }); <div class="div-wrap"></div>