How to thread over ragged list while skipping empty sub-lists?
Perhaps
ClearAll[f]
f[x_, vals_] := Module[{n = 0}, Replace[x, y_ /; y != {} :> Append[y, vals[[++n]]], {-2}]]
Example:
res = {{{20, 1}, {200, 2}}, {{}}, {{175, 1}}};
vals = {a, b, c};
f[res, vals]
{{{20, 1, a}, {200, 2, b}}, {{}}, {{175, 1, c}}}
Map[Replace[{x_, y_} :> {x, y, RandomReal[]}], res, {2}]
Edit (to make all rvs at once):
res = {{{20, 1}, {200, 2}}, {{}}, {{175, 1}}};
n = 2*Length[res]
rvs = RandomReal[1, n]
i = 1
Map[Replace[{x_, y_} :> {x, y, rvs[[i++]]}], res, {2}]
With[{pos = Position[res, {_Integer, _Integer}]},
ReplacePart[res,
Thread[Rule[pos, MapThread[Append, {Extract[res, pos], vals}]]]]]