Для перемешивания используется алгоритм Фишера-Йетса (был популяризован Дональдом Кнутом): перебор элементов идёт от последнего элемента массива в сторону первого, меняя местами его со случайно-выбранным элементом.
Моя реализация drag-and-drop: мышкой можно переносить div-ы с одного места на другое. Хватайте мышкой какой-нибудь город и переносите его в другой список.
Переносятся элементы, у которых есть CSS-класс "draggable". Переносить можно внутрь элементов, у которых есть CSS-класс "container4draggable".