diff --git a/random.py b/random.py
index bb3f7e29dde17e74ed4cf6548ccd16875cd5624c..7e84e23f0ec0da3e0a5200df085d589ff9bbc7bd 100644
--- a/random.py
+++ b/random.py
@@ -109,3 +109,14 @@ class PhiloxFourFloats(CustomCodeNode):
 
     def __repr__(self):
         return "{}, {}, {}, {} <- PhiloxRNG".format(*self.result_symbols)
+
+
+def random_symbol(assignment_list, rng_node=PhiloxTwoDoubles, *args, **kwargs):
+    while True:
+        node = rng_node(*args, **kwargs)
+        inserted = False
+        for symbol in node.result_symbols:
+            if not inserted:
+                assignment_list.insert(0, node)
+                inserted = True
+            yield symbol