@@ -3,10 +3,12 @@ module pizza_drop::airdrop {
     use aptos_framework::account;
     use aptos_std::table::{Self, Table};
     use aptos_framework::event;
-    use aptos_framework::timestamp;
     use aptos_framework::coin::{Self, Coin};
     use aptos_framework::aptos_coin::AptosCoin;
 
+    #[test_only]
+    use aptos_std::crypto_algebra::enable_cryptography_algebra_natives;
+
     #[test_only]
     use std::debug;
 
@@ -59,7 +61,8 @@ module pizza_drop::airdrop {
         coin::register<AptosCoin>(&resource_signer);
     }
 
-    public entry fun register_pizza_lover(owner: &signer, user: address) acquires ModuleData, State {
+    #[randomness]
+    entry fun register_pizza_lover(owner: &signer, user: address) acquires ModuleData, State {
         let state = borrow_global_mut<State>(get_resource_address());
         assert!(signer::address_of(owner) == state.owner, E_NOT_OWNER);
         get_random_slice(user);
@@ -117,12 +120,10 @@ module pizza_drop::airdrop {
         coin::transfer<AptosCoin>(&resource_signer, to, amount);
     }
     
-    #[randomness]
-    entry fun get_random_slice(user_addr: address) acquires ModuleData, State {
+    fun get_random_slice(user_addr: address) acquires ModuleData, State {
         let state = borrow_global_mut<State>(get_resource_address());
-        let time = timestamp::now_microseconds();
-        let random_val = time % 401;
-        let random_amount = 100 + random_val;  // 100-500 APT (in Octas: 10^8 smallest unit)
+        // 100-500 APT (in Octas: 10^8 smallest unit)
+        let random_amount = 100 + aptos_framework::randomness::u64_range(0, 400);
         table::add(&mut state.users_claimed_amount, user_addr, random_amount);
     }
 
@@ -177,6 +178,11 @@ module pizza_drop::airdrop {
         use aptos_framework::account;
         use aptos_framework::timestamp;
         use aptos_framework::aptos_coin;
+        use aptos_framework::randomness;
+
+        enable_cryptography_algebra_natives(framework);
+        randomness::initialize_for_testing(framework);
+        randomness::set_seed(x"0000000000000000000000000000000000000000000000000000000000000000");
 
         // Initialize timestamp and APT for testing
         timestamp::set_time_has_started_for_testing(framework);
@@ -270,6 +276,11 @@ module pizza_drop::airdrop {
         use aptos_framework::account;
         use aptos_framework::timestamp;
         use aptos_framework::aptos_coin;
+        use aptos_framework::randomness;
+
+        enable_cryptography_algebra_natives(framework);
+        randomness::initialize_for_testing(framework);
+        randomness::set_seed(x"0000000000000000000000000000000000000000000000000000000000000000");
 
         // Setup
         timestamp::set_time_has_started_for_testing(framework);
@@ -349,6 +360,11 @@ module pizza_drop::airdrop {
         use aptos_framework::account;
         use aptos_framework::timestamp;
         use aptos_framework::aptos_coin;
+        use aptos_framework::randomness;
+
+        enable_cryptography_algebra_natives(framework);
+        randomness::initialize_for_testing(framework);
+        randomness::set_seed(x"0000000000000000000000000000000000000000000000000000000000000000");
 
         // Setup
         timestamp::set_time_has_started_for_testing(framework);
@@ -379,4 +395,36 @@ module pizza_drop::airdrop {
         coin::destroy_burn_cap(burn_cap);
         coin::destroy_mint_cap(mint_cap);
     }
}