An "Iniative" game mechanic This challenge is inspired by turn based videogames like "Heroes of Might and Magic"



Implement this game mechanic:


There is some units(Imps, Swordsmans etc...) in our game
Every unit have an integer "initiative" 
Your program must decide which unit's turn now - based on unit's initiative
The more initiative means more frequent turns(for example unit with 10 iniative will move 5 times more often than 2 iniative unit)
Unit with highest initiative moves first
Input: Array of pairs of [unit_name: string, unit_initiative: integer]
Output: Unit names in moving sequence separated by line break (\n)
Make 50 turns total




Test case:

Units:
[["Imp", 500], ["Mammoth", 50], ["Swordsman", 250], ["Elf", 350]]

turn sequence(50 turns) output:

Imp
Elf
Imp
Swordsman
Elf
Imp
Imp
Swordsman
Elf
Imp
Elf
Imp
Swordsman
Imp
Elf
Imp
Swordsman
Elf
Imp
Elf
Imp
Swordsman
Mammoth
Imp
Elf
Imp
Swordsman
Elf
Imp
Imp
Swordsman
Elf
Imp
Elf
Imp
Swordsman
Imp
Elf
Imp
Swordsman
Elf
Imp
Elf
Imp
Swordsman
Mammoth
Imp
Elf
Imp
Swordsman


Other rules:


Use your favorite language
Write shortest code possible
Attach a link to an online iterpreter
Please follow standard code golf rules
Jelly, 20 15 bytes

P:ṭ×¥Ɱ"Ɗ,€"ẎṢṪ€


Try it online!

A dyadic link taking a list of initiative scores as its left argument and a list of characters as its right and returning a list of the characters in movement order.

Jelly, 14 bytes

İṭ×¥Ɱ"$,€"ẎṢṪ€


Try it online!

This version is one bytes shorter but I expect may sometimes get the order wrong because of inaccuracies in floating point calculations.