diff --git a/Documentation/pycardium/os.rst b/Documentation/pycardium/os.rst
index 8097bf7f8ec103bb53c263500129f9d6b498943e..325586631487d80b8658953ad5f7578bdf2ada58 100644
--- a/Documentation/pycardium/os.rst
+++ b/Documentation/pycardium/os.rst
@@ -21,6 +21,14 @@ CPython-Like
    :returns: A list of entities (files or subdirectories) in the directory
       ``dir``.
 
+.. py:function:: urandom(n)
+
+   Return ``n`` random bytes.
+
+   :param int n: Number of random bytes to retrieve.
+   :returns: ``bytes()`` object with ``n`` random bytes.
+
+
 Epicardium-Specific
 -------------------
 
diff --git a/pycardium/modules/os.c b/pycardium/modules/os.c
index c017e417e75a0dea115af340bb1b5a2b85c672e9..a693420b18979e8e1b835c85c71a943dd3c1ac9c 100644
--- a/pycardium/modules/os.c
+++ b/pycardium/modules/os.c
@@ -135,6 +135,18 @@ static mp_obj_t mp_os_read_battery()
 }
 static MP_DEFINE_CONST_FUN_OBJ_0(read_battery_obj, mp_os_read_battery);
 
+static mp_obj_t mp_os_urandom(mp_obj_t size_in)
+{
+	size_t size = mp_obj_get_int(size_in);
+	vstr_t vstr;
+
+	vstr_init_len(&vstr, size);
+	epic_trng_read((uint8_t*)vstr.buf, size);
+
+	return mp_obj_new_str_from_vstr(&mp_type_bytes, &vstr);
+}
+static MP_DEFINE_CONST_FUN_OBJ_1(urandom_obj, mp_os_urandom);
+
 static const mp_rom_map_elem_t os_module_globals_table[] = {
 	{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_os) },
 	{ MP_ROM_QSTR(MP_QSTR_exit), MP_ROM_PTR(&exit_obj) },
@@ -145,6 +157,7 @@ static const mp_rom_map_elem_t os_module_globals_table[] = {
 	{ MP_ROM_QSTR(MP_QSTR_mkdir), MP_ROM_PTR(&mkdir_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_rename), MP_ROM_PTR(&rename_obj) },
 	{ MP_ROM_QSTR(MP_QSTR_read_battery), MP_ROM_PTR(&read_battery_obj) },
+	{ MP_ROM_QSTR(MP_QSTR_urandom), MP_ROM_PTR(&urandom_obj) },
 };
 
 static MP_DEFINE_CONST_DICT(os_module_globals, os_module_globals_table);
diff --git a/pycardium/modules/qstrdefs.h b/pycardium/modules/qstrdefs.h
index f78afd25ed5aba9b38ef3b29d845ef5d573e47a6..6574d4369ff0ae21be5c1217fa41daa347073feb 100644
--- a/pycardium/modules/qstrdefs.h
+++ b/pycardium/modules/qstrdefs.h
@@ -106,6 +106,7 @@ Q(unlink)
 Q(mkdir)
 Q(rename)
 Q(read_battery)
+Q(urandom)
 
 /* gpio */
 Q(gpio)