Skip to content

Instantly share code, notes, and snippets.

@adamchainz
Created November 14, 2025 08:18
Show Gist options
  • Select an option

  • Save adamchainz/539bd8b5effe9147c166d0e2c9c2bdc8 to your computer and use it in GitHub Desktop.

Select an option

Save adamchainz/539bd8b5effe9147c166d0e2c9c2bdc8 to your computer and use it in GitHub Desktop.
document.addEventListener('DOMContentLoaded', () => {
const ol = document.querySelector('[data-candidates-toc]')
// Get or create a random seed stored in session storage
let seed = sessionStorage.getItem('dsf-board-candidates-2026-shuffle-seed')
if (!seed) {
seed = Math.random()
sessionStorage.setItem('dsf-board-candidates-2026-shuffle-seed', seed)
} else {
seed = parseFloat(seed)
}
// Seeded random number generator
let currentSeed = seed
const seededRandom = () => {
currentSeed = (currentSeed * 9301 + 49297) % 233280
return currentSeed / 233280
}
// Shuffle <li> elements and reorder corresponding <section> elements
Array.from(ol.children).sort(() => seededRandom() - 0.5).forEach(li => {
ol.appendChild(li)
const section = document.querySelector(li.querySelector('a').getAttribute('href')).parentElement
section.parentElement.appendChild(section)
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment