есть ли более производительные вариантМожно разменять скорость на память. Имеет смысл, если выбор баннера происходит в [бесконечном] цикле. Тогда делаем так: заводим массив из wt элементов, заполняем его номерами баннеров всего один раз. Тогда
r = Math.floor( Math.random() * wt );
сразу будет индексом элемента, содержащего номер баннера, без перебора. а почему OpenVPNПочитайте вот этот вопрос Объединение филиалов через VPN на Mikrotik? , процитирую свой комментарий оттуда:
спрашивали о выборе между тремя вариантами, вам в ответах посоветовали семь-восемь различных вариантов. :) В вопросах VPN всегда были разброд и шатание, нет одного лучшего варианта на все случаи.
https://ru.wikipedia.org/wiki/Перестановочный_шифр...