I think it would be useful to have a function that takes an existing metric/distribution and creates a new distribution by reshuffling its randomness, creating an iid copy. This has come up when modelling the cost-effectiveness of an intervention acting on multiple similar targets (e.g. people receiving a given treatment), and I multiplied a single distribution by the number of targets, increasing the noise compared to independent targets. (In some cases, it's necessary to consider multiple targets, especially across different kinds of targets, or when evaluating the cost-effectiveness of starting a new organization). I'm not sure if this is O(n) or O(n log n). https://cstheory.stackexchange.com/questions/26/complexity-of-the-fisher-yates-shuffle-algorithm Alternatively, duplicating the subgraph (using independent initial distributions; this would require shuffling hardcoded distributions) could work, although it would be preferable if changing the original also updated the duplicates to remain iid. Vectors of metrics might be preferable, although possibly a large undertaking. Related: https://guesstimate.canny.io/feature-requests/p/sample-n-times-from-one-metric-and-perform-operations-on-them https://guesstimate.canny.io/feature-requests/p/ability-to-create-many-variables-programmatically