Почему обвиняют Microsoft?
С 1-го марта Windows предлагает пользователям поменять свой браузер на альтернативный. При условии, если вы из страны Евросоюза и при условии, что вы пользуете Internet Explorer по умолчанию.
Окно выбора нового браузера содерит список из пяти вариантов, расположенных в случайном порядке. Согласно этой заметке окошко выдает не совсем случайный список и располагает IE8 в крайней правой позиции существенно чаще.
Мне стало интересно почему так может происходить.
Здесь оригинальная страница, которая появляется в окошке выбора браузера:
http://www.browserchoice.eu/BrowserChoice/browserchoice_en.htm
Это фрагмент кода, который отвечает за тот самый случайный порядок:
function ArrayShuffle(a)
{
var d, c, b=a.length;
while(b)
{
c=Math.floor(Math.random()*b);
d=a[--b];
a[b]=a[c];
a[c]=d
}
}где изначально a = [0, 1, 2, 3, 4].
На первый взгляд нет ничего криминального. Мы проходимся по изначально упорядоченному массиву и меняем каждый элемент (индекс b) с другим элементом, который выбирается случайно (индекс с).
Вопрос, почему этот код может давать заведомо не случайный результат? Где ошибка, в моих рассуждениях или в результатах экспериментов?