diff --git a/common/types.go b/common/types.go
index daefcde11eb5a2594804e4d38544bec335572b30..183d48fb3224bd99dfc95829a035b6792ac9fa64 100644
--- a/common/types.go
+++ b/common/types.go
@@ -1,6 +1,10 @@
 package common
 
-import "math/big"
+import (
+	"math/big"
+	"math/rand"
+	"reflect"
+)
 
 const (
 	hashLength    = 32
@@ -48,6 +52,15 @@ func (h *Hash) Set(other Hash) {
 	}
 }
 
+// Generate implements testing/quick.Generator.
+func (h Hash) Generate(rand *rand.Rand, size int) reflect.Value {
+	m := rand.Intn(len(h))
+	for i := len(h) - 1; i > m; i-- {
+		h[i] = byte(rand.Uint32())
+	}
+	return reflect.ValueOf(h)
+}
+
 /////////// Address
 func BytesToAddress(b []byte) Address {
 	var a Address