Why is the if statement failed? C++

the Random Number Item function looks like in CPP, and yes it is just generating a random number between 0 to 99

void AMyGameMode::RandomItemNumber(int32& Number)
{
	TArray<int32> Arr{};
	TArray<FName> OutRowNames{};
	(OutRowNames).Reset();

	if (const UDataTable* DT_ItemNumberProbability = LoadObject<UDataTable>(NULL, TEXT("/Game/DataTables/ItemsGeneration/DT_ItemNumbarProbability")))
	{
		OutRowNames = DT_ItemNumberProbability->GetRowNames();
		for (auto& Array : OutRowNames) 
		{
			if (const UDataTable* DT_ItemNumberProbability{ LoadObject<UDataTable>(GetWorld(), TEXT("/Game/DataTables/ItemsGeneration/DT_ItemNumbarProbability")) })
			{
				if (const FST_ItemNumberProbability * OutRow{ DT_ItemNumberProbability->FindRow<FST_ItemNumberProbability>(FName(Array), "") })
				{
					if (OutRow)
					{
						NumberProbabilityDatas = *OutRow;
						for ( int32 i = 1; i <= NumberProbabilityDatas.Percent; i++)
						{
							Arr.Add(NumberProbabilityDatas.Number);
						}
					}
				}
			}
		}
		//Randomize range between 0 to 99 , set return to Number
		FCustomThunkTemplates::Array_Shuffle(Arr);
		Number = Arr[FMath::RandRange(0, 99)]; 
	}
}

and in bp looks likes this