I want to use RXJS to set up an ORDERED data stream that emits a number at a random interval (say every 1-5 seconds) which I want to use as a time-randomized data source for
Use concatMap instead of flatMap.
concatMap
flatMap
Documentation here: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/concatmap.md
var source = Rx.Observable .range(1, 10) .concatMap(function (x) { return Rx.Observable .of(x) .delay(randomDelay(1000,5000)); }) .timeInterval();