Getting an object to float around the screen

Hello, I was hoping one of you could help me with the following feature I’d like to implement.

Background
The game is a 2d, single-screen arcade game that contains powerups that spawn and float around the screen.

Request
Get an object to float/move randomly from its initial position around the game screen. It should move at a fixed speed until shot by a player, at which point it should gain speed briefly before returning to its default speed and move opposite to the shot impact.

Thanks for any help any of you may provide!

would something like this work? just add in collider effects and when you shoot you should be able to just add a force.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RandomMovement2D : MonoBehaviour
{
    Rigidbody2D rig;
    public float defaultSpeed=100;
    public float slowSpeed=10;
    // Start is called before the first frame update
    void Start()
    {
        rig = GetComponent<Rigidbody2D>();
        float rotation = Random.Range(0,360);
        transform.eulerAngles = new Vector3(0,0,rotation);
        Invoke("AddForce",0.1f);
       
    }

    void AddForce()
    {
        rig.AddRelativeForce(new Vector2(0,defaultSpeed));
    }

    // Update is called once per frame
    void Update()
    {
        if(rig.velocity.magnitude>defaultSpeed)
        {
            rig.AddRelativeForce(new Vector2(0,-slowSpeed));
        } else if(rig.velocity.magnitude<defaultSpeed)
        {
            rig.AddRelativeForce(new Vector2(0,slowSpeed/2));
        }

        
    }
}