diff --git a/registry-hedgehog.cabal b/registry-hedgehog.cabal
--- a/registry-hedgehog.cabal
+++ b/registry-hedgehog.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: bdeac6f56c70c9617ee3d3697e2cd995e8450cfe1704fd0cecebbb22cf008e3a
+-- hash: 8da4d7249d8800f06d303acbc3ed33c9d559db7bfde2ba78d8a2cf4293c4d2d0
 
 name:           registry-hedgehog
-version:        0.7.0.3
+version:        0.7.0.4
 synopsis:       utilities to work with Hedgehog generators and `registry`
 description:    This library provides some functions to extract generators from a "Registry" and make stateful modifications of that Registry to precisely control the generation of data
 category:       Control
diff --git a/src/Data/Registry/Hedgehog.hs b/src/Data/Registry/Hedgehog.hs
--- a/src/Data/Registry/Hedgehog.hs
+++ b/src/Data/Registry/Hedgehog.hs
@@ -42,6 +42,7 @@
     nonEmptyOf,
     pairOf,
     setOf,
+    setOfMinMax,
     tripleOf,
     tuple4Of,
     tuple5Of,
@@ -54,6 +55,7 @@
 where
 
 import Data.HashMap.Strict as HashMap (HashMap, fromList)
+import qualified Data.List as L
 import Data.List.NonEmpty as NonEmpty hiding (cycle, nonEmpty, (!!))
 import Data.Map as Map (fromList)
 import Data.Maybe as Maybe
@@ -198,6 +200,11 @@
 -- | Create a default generator for a small set of elements
 setOf :: forall a. (Ord a) => Gen a -> Gen (Set a)
 setOf = fmap Set.fromList . listOf
+
+-- | Create a default generator for a set with a minimum and a maximum number of elements
+--   The implementation uses Gen.filter to make sure that the elements are unique
+setOfMinMax :: forall a. (Ord a) => Int -> Int -> Gen a -> Gen (Set a)
+setOfMinMax mi mx = fmap Set.fromList . Gen.filter (\as -> L.nub as == as) . listOfMinMax @a mi mx
 
 -- | Create a default generator for map of key/values
 mapOf :: forall k v. (Ord k) => Gen k -> Gen v -> Gen (Map k v)
