diff --git a/extra/io/random/random.factor b/extra/io/random/random.factor
index 47abdec2ed..3055919641 100644
--- a/extra/io/random/random.factor
+++ b/extra/io/random/random.factor
@@ -1,8 +1,9 @@
 ! Copyright (C) 2012 John Benediktsson
 ! See http://factorcode.org/license.txt for BSD license
 
-USING: combinators fry io kernel locals math math.order random
-sequences sequences.private ;
+USING: combinators destructors fry io io.encodings.binary
+io.files io.streams.limited io.streams.random kernel locals
+math math.order random sequences sequences.private ;
 
 IN: io.random
 
@@ -26,3 +27,10 @@ PRIVATE>
             r n < [ line r accum set-nth-unsafe ] when
         ] if
     ] each-numbered-line accum ;
+
+: random-file ( n path -- )
+    [
+        [ <random-stream> swap limit-stream ]
+        [ binary <file-writer> ] bi*
+        [ &dispose ] bi@ stream-copy
+    ] with-destructors ;