diff --git a/internal/random/rand.go b/internal/random/rand.go
deleted file mode 100644
index db2c087..0000000
--- a/internal/random/rand.go
+++ /dev/null
@@ -1,15 +0,0 @@
-package random
-
-import (
-	"math/rand"
-	"time"
-)
-
-func init() {
-	rand.Seed(time.Now().UnixNano())
-}
-
-// Uint32 returns random uint32 value [0, max).
-func Uint32(max uint32) uint32 {
-	return rand.Uint32() % max
-}
diff --git a/object/test/generate.go b/object/test/generate.go
index fca772c..085880c 100644
--- a/object/test/generate.go
+++ b/object/test/generate.go
@@ -1,7 +1,9 @@
 package objecttest
 
 import (
-	"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/internal/random"
+	"math/rand"
+	"time"
+
 	"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object"
 	"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
 	refstest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
@@ -186,7 +188,7 @@ func GenerateGetResponseBody(empty bool) *object.GetResponseBody {
 	m := new(object.GetResponseBody)
 
 	if !empty {
-		switch random.Uint32(3) {
+		switch randomInt(3) {
 		case 0:
 			m.SetObjectPart(GenerateGetObjectPartInit(false))
 		case 1:
@@ -240,7 +242,7 @@ func GeneratePutRequestBody(empty bool) *object.PutRequestBody {
 	m := new(object.PutRequestBody)
 
 	if !empty {
-		switch random.Uint32(2) {
+		switch randomInt(2) {
 		case 0:
 			m.SetObjectPart(GeneratePutObjectPartInit(false))
 		case 1:
@@ -362,7 +364,7 @@ func GenerateHeadResponseBody(empty bool) *object.HeadResponseBody {
 	m := new(object.HeadResponseBody)
 
 	if !empty {
-		switch random.Uint32(3) {
+		switch randomInt(3) {
 		case 0:
 			m.SetHeaderPart(GenerateHeaderWithSignature(false))
 		case 1:
@@ -524,7 +526,7 @@ func GenerateGetRangeResponseBody(empty bool) *object.GetRangeResponseBody {
 	m := new(object.GetRangeResponseBody)
 
 	if !empty {
-		switch random.Uint32(2) {
+		switch randomInt(2) {
 		case 0:
 			m.SetRangePart(GenerateGetRangePartChunk(false))
 		case 1:
@@ -642,3 +644,7 @@ func GeneratePutSingleResponse(empty bool) *object.PutSingleResponse {
 	m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
 	return m
 }
+
+func randomInt(n int) int {
+	return rand.New(rand.NewSource(time.Now().UnixNano())).Intn(n)
+}
diff --git a/session/test/generate.go b/session/test/generate.go
index cfce6cd..561ec01 100644
--- a/session/test/generate.go
+++ b/session/test/generate.go
@@ -1,8 +1,10 @@
 package sessiontest
 
 import (
+	"math/rand"
+	"time"
+
 	acltest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/test"
-	"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/internal/random"
 	refstest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
 	"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session"
 	statustest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/test"
@@ -167,7 +169,7 @@ func GenerateSessionTokenBody(empty bool) *session.TokenBody {
 		m.SetOwnerID(refstest.GenerateOwnerID(false))
 		m.SetLifetime(GenerateTokenLifetime(false))
 
-		switch random.Uint32(2) {
+		switch randomInt(2) {
 		case 0:
 			m.SetContext(GenerateObjectSessionContext(false))
 		case 1:
@@ -236,3 +238,7 @@ func GenerateXHeaders(empty bool) []session.XHeader {
 
 	return xs
 }
+
+func randomInt(n int) int {
+	return rand.New(rand.NewSource(time.Now().UnixNano())).Intn(n)
+}