diff --git a/generator/sections/gen-section-arm.c b/generator/sections/gen-section-arm.c
index c181663..ded953d 100644
--- a/generator/sections/gen-section-arm.c
+++ b/generator/sections/gen-section-arm.c
@@ -21,8 +21,8 @@
 			    GEN_VALID_BITS_TEST_TYPE validBitsType)
 {
 	//Set up for generation of error/context structures.
-	UINT16 error_structure_num = rand() % 4 + 1; //Must be at least 1.
-	UINT16 context_structure_num = rand() % 3 + 1;
+	UINT16 error_structure_num = cper_rand() % 4 + 1; //Must be at least 1.
+	UINT16 context_structure_num = cper_rand() % 3 + 1;
 	void *error_structures[error_structure_num];
 	void *context_structures[context_structure_num];
 	size_t context_structure_lengths[context_structure_num];
@@ -37,7 +37,7 @@
 	}
 
 	//Determine a random amount of vendor specific info.
-	size_t vendor_info_len = rand() % 16 + 4;
+	size_t vendor_info_len = cper_rand() % 16 + 4;
 
 	//Create the section as a whole.
 	size_t total_len = 40 + (error_structure_num * ARM_ERROR_INFO_SIZE);
@@ -55,7 +55,7 @@
 	*section_length = total_len;
 
 	//Error affinity.
-	*(section + 12) = rand() % 4;
+	*(section + 12) = cper_rand() % 4;
 
 	//Reserved zero bytes.
 	UINT32 *validation = (UINT32 *)section;
@@ -87,7 +87,7 @@
 	for (size_t i = 0; i < vendor_info_len; i++) {
 		//Ensure only ascii is used so we don't
 		// fail base64E
-		*cur_pos = rand() % 127 + 1;
+		*cur_pos = cper_rand() % 127 + 1;
 		cur_pos += 1;
 	}
 
@@ -106,7 +106,7 @@
 	*(error_info + 1) = ARM_ERROR_INFO_SIZE;
 
 	//Type of error.
-	UINT8 error_type = rand() % 3;
+	UINT8 error_type = cper_rand() % 3;
 	*(error_info + 4) = error_type;
 
 	//Reserved bits for error information.
@@ -162,7 +162,7 @@
 size_t generate_arm_context_info(void **location)
 {
 	//Initial length is 8 bytes. Add extra based on type.
-	UINT16 reg_type = rand() % 9;
+	UINT16 reg_type = cper_rand() % 9;
 	UINT32 reg_size = 0;
 
 	//Set register size.
diff --git a/generator/sections/gen-section-ccix-per.c b/generator/sections/gen-section-ccix-per.c
index e648cba..2547d8d 100644
--- a/generator/sections/gen-section-ccix-per.c
+++ b/generator/sections/gen-section-ccix-per.c
@@ -16,7 +16,7 @@
 {
 	//Create a random length for the CCIX PER log.
 	//The log attached here does not necessarily conform to the CCIX specification, and is simply random.
-	int log_len = (rand() % 5 + 1) * 32;
+	int log_len = (cper_rand() % 5 + 1) * 32;
 
 	//Create random bytes.
 	int size = 16 + log_len;
diff --git a/generator/sections/gen-section-cxl-component.c b/generator/sections/gen-section-cxl-component.c
index 615a152..6c4e60e 100644
--- a/generator/sections/gen-section-cxl-component.c
+++ b/generator/sections/gen-section-cxl-component.c
@@ -16,7 +16,7 @@
 {
 	//Create a random length for the CXL component event log.
 	//The logs attached here do not necessarily conform to the specification, and are simply random.
-	int log_len = rand() % 64;
+	int log_len = cper_rand() % 64;
 
 	//Create random bytes.
 	int size = 32 + log_len;
diff --git a/generator/sections/gen-section-cxl-protocol.c b/generator/sections/gen-section-cxl-protocol.c
index 1918d68..e171c7f 100644
--- a/generator/sections/gen-section-cxl-protocol.c
+++ b/generator/sections/gen-section-cxl-protocol.c
@@ -16,15 +16,15 @@
 {
 	//Create a random length for the CXL DVSEC and CXL error log.
 	//The logs attached here do not necessarily conform to the specification, and are simply random.
-	int dvsec_len = rand() % 64;
-	int error_log_len = rand() % 64;
+	int dvsec_len = cper_rand() % 64;
+	int error_log_len = cper_rand() % 64;
 
 	//Create random bytes.
 	int size = 116 + dvsec_len + error_log_len;
 	UINT8 *bytes = generate_random_bytes(size);
 
 	//Set CXL agent type.
-	int cxl_agent_type = rand() % 2;
+	int cxl_agent_type = cper_rand() % 2;
 	*(bytes + 8) = cxl_agent_type;
 
 	//Set reserved areas to zero.
diff --git a/generator/sections/gen-section-dmar.c b/generator/sections/gen-section-dmar.c
index 7c2a85f..4062338 100644
--- a/generator/sections/gen-section-dmar.c
+++ b/generator/sections/gen-section-dmar.c
@@ -25,10 +25,10 @@
 	*(reserved + 1) = 0;
 
 	//Set expected values.
-	*(bytes + 4) = rand() % 0xC;   //Fault reason.
-	*(bytes + 5) = rand() % 2;     //Access type.
-	*(bytes + 6) = rand() % 2;     //Address type.
-	*(bytes + 7) = rand() % 2 + 1; //Architecture type.
+	*(bytes + 4) = cper_rand() % 0xC;   //Fault reason.
+	*(bytes + 5) = cper_rand() % 2;	    //Access type.
+	*(bytes + 6) = cper_rand() % 2;	    //Address type.
+	*(bytes + 7) = cper_rand() % 2 + 1; //Architecture type.
 
 	//Set return values, exit.
 	*location = bytes;
diff --git a/generator/sections/gen-section-firmware.c b/generator/sections/gen-section-firmware.c
index 6ec4b88..bf8a7ee 100644
--- a/generator/sections/gen-section-firmware.c
+++ b/generator/sections/gen-section-firmware.c
@@ -25,10 +25,10 @@
 	}
 
 	//Set expected values.
-	*(bytes + 1) = 2;    //Revision, referenced version of spec is 2.
+	*(bytes + 1) = 2;	  //Revision, referenced version of spec is 2.
 	UINT64 *record_id = (UINT64 *)(bytes + 8);
-	*record_id = 0;	     //Record ID, should be forced to NULL.
-	*bytes = rand() % 3; //Record type.
+	*record_id = 0;		  //Record ID, should be forced to NULL.
+	*bytes = cper_rand() % 3; //Record type.
 
 	//Set return values, exit.
 	*location = bytes;
diff --git a/generator/sections/gen-section-generic.c b/generator/sections/gen-section-generic.c
index 54de52e..4d25559 100644
--- a/generator/sections/gen-section-generic.c
+++ b/generator/sections/gen-section-generic.c
@@ -33,7 +33,7 @@
 	for (int i = 0; i < 128; i++) {
 		UINT8 *byte = start_byte + 24 + i;
 		//Ensure only ascii is used
-		*byte = rand() % 127 + 1;
+		*byte = cper_rand() % 127 + 1;
 
 		//Null terminate last byte.
 		if (i == 127) {
diff --git a/generator/sections/gen-section-ia32x64.c b/generator/sections/gen-section-ia32x64.c
index 647f77d..8507d1b 100644
--- a/generator/sections/gen-section-ia32x64.c
+++ b/generator/sections/gen-section-ia32x64.c
@@ -20,8 +20,8 @@
 				GEN_VALID_BITS_TEST_TYPE validBitsType)
 {
 	//Set up for generation of error/context structures.
-	UINT16 error_structure_num = rand() % 4 + 1;
-	UINT16 context_structure_num = rand() % 4 + 1;
+	UINT16 error_structure_num = cper_rand() % 4 + 1;
+	UINT16 context_structure_num = cper_rand() % 4 + 1;
 	void *error_structures[error_structure_num];
 	void *context_structures[context_structure_num];
 	size_t context_structure_lengths[context_structure_num];
@@ -99,7 +99,7 @@
 	//Create a random type of error structure.
 	EFI_GUID *guid = (EFI_GUID *)error_structure;
 	UINT64 *check_info = (UINT64 *)(error_structure + 24);
-	int error_structure_type = rand() % 4;
+	int error_structure_type = cper_rand() % 4;
 	switch (error_structure_type) {
 	//Cache
 	case 0:
@@ -149,16 +149,16 @@
 size_t generate_ia32x64_context_structure(void **location)
 {
 	//Initial length is 16 bytes. Add extra based on type.
-	int reg_type = rand() % 8;
+	int reg_type = cper_rand() % 8;
 	int reg_size = 0;
 
 	//Set register size.
 	if (reg_type == 2) {
-		reg_size = 92;			  //IA32 registers.
+		reg_size = 92;			       //IA32 registers.
 	} else if (reg_type == 3) {
-		reg_size = 244;			  //x64 registers.
+		reg_size = 244;			       //x64 registers.
 	} else {
-		reg_size = (rand() % 5 + 1) * 32; //Not table defined.
+		reg_size = (cper_rand() % 5 + 1) * 32; //Not table defined.
 	}
 
 	//Create structure randomly.
diff --git a/generator/sections/gen-section-memory.c b/generator/sections/gen-section-memory.c
index a45f0ce..866fe0c 100644
--- a/generator/sections/gen-section-memory.c
+++ b/generator/sections/gen-section-memory.c
@@ -30,7 +30,7 @@
 	*(bytes + 73) &= ~0x1C; //Extended bits 2-4
 
 	//Fix values that could be above range.
-	*(bytes + 72) = rand() % 16; //Memory error type
+	*(bytes + 72) = cper_rand() % 16; //Memory error type
 
 	//Fix error status.
 	create_valid_error_section(bytes + 8);
@@ -61,8 +61,8 @@
 	*(bytes + 63) = 0; //Reserved byte 63
 
 	//Fix values that could be above range.
-	*(bytes + 61) = rand() % 16; //Memory error type
-	*(bytes + 62) = rand() % 2;  //Status
+	*(bytes + 61) = cper_rand() % 16; //Memory error type
+	*(bytes + 62) = cper_rand() % 2;  //Status
 
 	//Fix error status.
 	create_valid_error_section(bytes + 8);
diff --git a/generator/sections/gen-section-nvidia.c b/generator/sections/gen-section-nvidia.c
index a06f545..83b8845 100644
--- a/generator/sections/gen-section-nvidia.c
+++ b/generator/sections/gen-section-nvidia.c
@@ -26,8 +26,6 @@
 		"MCF",	     "GPU-STATUS",    "GPU-CONTNMT",   "SMMU",
 	};
 
-	init_random();
-
 	//Create random bytes.
 	int numRegs = 6;
 	size_t size = offsetof(EFI_NVIDIA_ERROR_DATA, Register) +
@@ -45,7 +43,8 @@
 	nvidia_error->Severity %= 4;
 
 	//Signature.
-	int idx_random = rand() % (sizeof(signatures) / sizeof(signatures[0]));
+	int idx_random =
+		cper_rand() % (sizeof(signatures) / sizeof(signatures[0]));
 	strncpy(nvidia_error->Signature, signatures[idx_random],
 		sizeof(nvidia_error->Signature) - 1);
 	nvidia_error->Signature[sizeof(nvidia_error->Signature) - 1] = '\0';
diff --git a/generator/sections/gen-section-pci-bus.c b/generator/sections/gen-section-pci-bus.c
index ca0f255..c0e59c0 100644
--- a/generator/sections/gen-section-pci-bus.c
+++ b/generator/sections/gen-section-pci-bus.c
@@ -33,7 +33,7 @@
 
 	//Fix values that could be above range.
 	UINT16 *error_type = (UINT16 *)(bytes + 16);
-	*error_type = rand() % 8;
+	*error_type = cper_rand() % 8;
 
 	//Fix error status.
 	create_valid_error_section(bytes + 8);
diff --git a/generator/sections/gen-section-pci-dev.c b/generator/sections/gen-section-pci-dev.c
index 6deac59..3982d63 100644
--- a/generator/sections/gen-section-pci-dev.c
+++ b/generator/sections/gen-section-pci-dev.c
@@ -15,8 +15,8 @@
 				GEN_VALID_BITS_TEST_TYPE validBitsType)
 {
 	//Generate how many register pairs will be attached to this section.
-	UINT32 num_memory_pairs = rand() % 4;
-	UINT32 num_io_pairs = rand() % 4;
+	UINT32 num_memory_pairs = cper_rand() % 4;
+	UINT32 num_io_pairs = cper_rand() % 4;
 	UINT32 num_registers = num_memory_pairs + num_io_pairs;
 
 	//Create random bytes.
diff --git a/generator/sections/gen-section-pcie.c b/generator/sections/gen-section-pcie.c
index db9dfd9..2111d28 100644
--- a/generator/sections/gen-section-pcie.c
+++ b/generator/sections/gen-section-pcie.c
@@ -36,14 +36,14 @@
 	*(bytes + 39) = 0;     //Device ID byte 15
 
 	//Set expected values.
-	int minor = rand() % 128;
-	int major = rand() % 128;
+	int minor = cper_rand() % 128;
+	int major = cper_rand() % 128;
 	*version = int_to_bcd(minor);
 	*version |= int_to_bcd(major) << 8;
 
 	//Fix values that could be above range.
 	UINT32 *port_type = (UINT32 *)(bytes + 8);
-	*port_type = PCIE_PORT_TYPES[rand() %
+	*port_type = PCIE_PORT_TYPES[cper_rand() %
 				     (sizeof(PCIE_PORT_TYPES) / sizeof(int))];
 
 	//Set return values, exit.
