Выбрать числа из множеств, чтобы они не пересекались?
Выбираете 1-е число из полного диапазона.Выкидываете множество выпавшего числа.Выбираете 2-е число из оставшегося диапазона.
Например:случайное из [0, 2346]  оказалось 105 из диапазона "B"выкидываем диапазон B, остаётся [0, 1902], т.к. длина "B" 544-101+1 = 444, 2346 - 444 = 1902случайное из [0,1902] оказалось, например, 404. Для чисел выше 100 добавляем 444 и получаем 848 из диапазона "C" по старому стилю ) 
А почему не выбрать сначала два диапазона, а потом для каждого из них выбрать число?