diff --git a/common/helpers/__init__.py b/common/helpers/__init__.py
index 5bab1621fd150b0eaa7904b18cbf5e41cc82f628..abe97df91f6222671cdcf4338f5ac1a39d0073ba 100644
--- a/common/helpers/__init__.py
+++ b/common/helpers/__init__.py
@@ -1,6 +1,8 @@
 import random
 import string
 
+from journals.constants import SCIPOST_JOURNALS_SUBMIT
+
 
 def model_form_data(model, form_class, form_kwargs={}):
     '''
@@ -38,6 +40,34 @@ def random_arxiv_identifier_without_version_number():
     return random_digits(4) + "." + random_digits(5)
 
 
+def random_scipost_journal():
+    return random.choice(SCIPOST_JOURNALS_SUBMIT)[0]
+
+
+def random_external_journal():
+    return random.choice((
+        'PhysRevA.',
+        'PhysRevB.',
+        'PhysRevC.',
+        'nature.'
+        'S0550-3213(01)',
+        '1742-5468/',
+        '0550-3213(96)'
+    ))
+
+
+def random_pub_number():
+    return '%i.%i.%s' % (random.randint(1, 9), random.randint(1, 9), random_digits(3))
+
+
+def random_scipost_doi():
+    return '10.21468/%s.%s' % (random_scipost_journal(), random_pub_number())
+
+
+def random_external_doi():
+    return '10.%s/%s%s' % (random_digits(5), random_external_journal(), random_pub_number())
+
+
 def random_digits(n):
     return "".join(random.choice(string.digits) for _ in range(n))