const rules:boolean[][] = [ [false, true, false, true, true, false, true], [true, false, true, false, true, true, true], [false, true, false, true, true, false, true], [true, false, true, false, true, true, true], [true, false, true, false, false, true, false], [false, true, false, true, true, false, true], [true, false, true, false, false, true, false] ] let previousChord:number = 0 let chords:number[] = [] for(let i:number = 0; i < 8; i++){ const chord = Math.floor(Math.random()*7) if(rules[previousChord][chord]){ chords.push(chord + 1) previousChord = chord } else { i-- } } console.log(chords)