diff --git a/src/core/wordlist.py b/src/core/wordlist.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e5726d50f7486a838dfd0b5decadc46f9887c12
--- /dev/null
+++ b/src/core/wordlist.py
@@ -0,0 +1,26 @@
+import os.path
+import secrets
+
+from typing import List
+
+_wordlist = None
+
+def read_wordlist() -> List[str]:
+    global _wordlist
+
+    if _wordlist is None:
+        with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "data", "en.txt")) as f:
+            _wordlist = f.read().splitlines()
+
+    return _wordlist
+
+def random(n: int) -> List[str]:
+    assert n >= 0
+
+    result = []
+    words = read_wordlist()
+
+    for _ in range(0, n):
+        result.append(secrets.choice(words))
+
+    return result