Разве вы не выбираете значения одного из двух модальных распределений?
http://docs.python.org/library/random.html#random.triangular
Звучит так, будто вы просто переключаетесь между двумя наборами параметров для вызова треугольника.
def bimodal( low1, high1, mode1, low2, high2, mode2 ):
toss = random.choice( (1, 2) )
if toss == 1:
return random.triangular( low1, high1, mode1 )
else:
return random.triangular( low2, high2, mode2 )
Это может сделать все, что вам нужно.